octava / code-generator
PHP code generator
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/octava/code-generator
Requires
- php: ^7.1
- nikic/php-parser: ^4.2
- psr/log: ^1.1
Requires (Dev)
- phpunit/phpunit: ^7.5
Suggests
- friendsofphp/php-cs-fixer: Reformat code style according to your preferences
- monolog/monolog: Allows more advanced logging of the application flow
This package is auto-updated.
Last update: 2025-10-15 08:46:10 UTC
README
Умный кодогенератор для 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'] ) );