Maslosoft Sprite API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
namespace Maslosoft\Sprite\Helpers;
use Maslosoft\Sprite\Interfaces\SpritePackageInterface;
use Maslosoft\Sprite\Models\ConstClass;
use Maslosoft\Sprite\Models\SpriteImage;
/**
* ConstantsFactory
*
* @author Piotr Maselkowski <pmaselkowski at gmail.com>
*/
class ConstantsFactory
{
/**
* Create class constant models out of sprites array
* @param SpriteImage[] $sprites
* @return ConstClass[]
*/
public static function create($sprites)
{
$classes = [];
foreach ($sprites as $sprite)
{
/* @var $sprite SpriteImage */
foreach ($sprite->packages as $package)
{
/* @var $package SpritePackageInterface */
$className = $package->getConstantsClass();
// Skip empty
if (empty($className))
{
continue;
}
ConstantsFileCreator::generate($package);
// NOTE: Skip if class exists checks,
// as it will load class into memory too early!
if (!array_key_exists($className, $classes))
{
$classes[$className] = new ConstClass($package);
}
$classes[$className]->add($sprite);
}
}
return $classes;
}
}
API documentation generated by ApiGen