Умный кодогенератор для PHP, написанный на PHP.
Позволяет, на основании шаблонов файлов, генерировать файлы по заданным параметрам. Так же, умеет совмещать код в классах.
composer require octava/code-generator --dev
_CG_FILE_NAME_
- имя файла (TestController
для файла TestController.php
)
_CG_FILE_NAME_UCFIRST_
- имя файла с большой буквы (TestController
для файла TestController.php
)
_CG_FILE_NAME_LCFIRST_
- имя файла с маленькой буквы (testController
для файла TestController.php
)
_CG_FILE_BASENAME_
=> имя файла (TestController
для файла TestController.php
)
_CG_FILE_DIR_
=> директория файла (path/to/file
для файла path/to/file/TestController.php
),
_CG_FILE_PATH_
=> путь к файлу без расширения (path/to/file/TestController
для файла path/to/file/TestController.php
),
_CG_FILE_EXTENSION_
- расширение файла (php
для файла TestController.php
)
_CG_FILE_NAMESPACE__
- расширение файла (path\to\file
для файла path/to/file/TestController.php
)
<?php
use Octava\CodeGenerator\CodeGenerator;
use Octava\CodeGenerator\Configuration;
use Octava\CodeGenerator\Filesystem;
use Octava\CodeGenerator\Processor\PhpClassProcessor;
use Octava\CodeGenerator\Processor\SimpleProcessor;
use Octava\CodeGenerator\TemplateFactory;
use PhpParser\ParserFactory;
use PhpParser\PrettyPrinter\Standard;
$configuration = new Configuration('base/templates/path', 'base/output/dir');
$configuration
->setTemplateVars([])
->addProcessor(new SimpleProcessor())
->addProcessor(new PhpClassProcessor((new ParserFactory)->create(ParserFactory::PREFER_PHP7), new Standard()))
;
$templateFactory = new TemplateFactory($configuration);
$codeGenerator = new CodeGenerator($this->configuration, new Filesystem());
$codeGenerator
->generate(
$templateFactory->create(
'src/Application/_CG_MODULE_/_CG_MODULE_Service.php',
'src/Application/_CG_MODULE_/_CG_MODULE_Service.php',
['_CG_MODULE_' => 'MyFavourite']
)
);