Skip to content

octava/code-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP Кодогенератор

Умный кодогенератор для PHP, написанный на PHP.

SymfonyInsight

Позволяет, на основании шаблонов файлов, генерировать файлы по заданным параметрам. Так же, умеет совмещать код в классах.

Установка

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']
        )
    );

About

PHP code generator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages