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
<?php
/**
* This software package is licensed under AGPL or Commercial license.
*
* @package maslosoft/sprite
* @licence AGPL or Commercial
* @copyright Copyright (c) Piotr Masełkowski <pmaselkowski@gmail.com>
* @copyright Copyright (c) Maslosoft
* @copyright Copyright (c) Others as mentioned in code
* @link http://maslosoft.com/sprite/
*/
namespace Maslosoft\Sprite;
use Maslosoft\Sprite\Interfaces\GeneratorInterface;
use Maslosoft\Sprite\Models\Package;
use Maslosoft\Sprite\Traits\VersionTrait;
use ReflectionObject;
use ReflectionProperty;
/**
* Generator
*
* @author Piotr Maselkowski <pmaselkowski at gmail.com>
*/
class Generator implements GeneratorInterface
{
use VersionTrait;
public function generate()
{
$package = new Package();
$generator = new CompoundGenerator();
// Copy config to package, as CompoundGenerator should be configured already via:
// - sprite.yml
// - any EmbeDi config source
$info = new ReflectionObject($package);
foreach ($info->getProperties(ReflectionProperty::IS_PUBLIC) as $property)
{
$name = $property->name;
$package->$name = $generator->$name;
}
$generator->add($package);
$generator->generate();
}
}
API documentation generated by ApiGen