jumilla/source-generator

PHP源代码生成器。可以使用方法链进行编写。

1.1.2 2017-01-26 23:00 UTC

This package is not auto-updated.

Last update: 2024-09-24 04:09:56 UTC


README

Build Status Quality Score Code Coverage Latest Stable Version Total Downloads Software License

日语文档 - 日语

<?php

use Jumilla\Generators\FileGenerator;

$generator = FileGenerator::make('outdir-path', 'stubdir-path');

# copy
$generator->sourceFile('Controller.php');

# generate in directory
$name = 'notification';
$generator->directory('Services', function ($generator) use ($name) {
    $generator->file(ucfirst($name).'Service.php')->template('Service.php');
});

API

空白文件

$generator->file('Class1.php')->blank();

从字符串生成源文件

$generator->file('Class1.php')->text('## read');

从存根生成源文件

$generator->sourceFile('Class1.php');

从字符串(带有参数)生成源文件

$generator->file('Class2.php')->text('<?php class {$class_name} {}', [
    'class_name' => 'Class2',
]);

从存根(带有参数)生成源文件

$generator->templateFile('Class2.php');

JSON文件

$generator->json('Class2.php')->json([
    'foo' => 'FOO',
    'bar' => 'BaR',
]);

.gitkeep文件

$generator->gitKeepFile();

PHP空白文件

$generator->phpBlankFile('functions.php');

PHP配置文件

$generator->phpConfigFile('config.php', [
    'theme' => 'snow',
    'database' => [
        'default' => 'mysql',
    ],
]);

PHP源文件

$generator->phpSourceFile('Controller.php', 'class Controller {}', 'App\Http\Controllers');

获取目录遍历器

$sub = $generator->directory('app/Views');
$sub->sourceFile('layout.twig');
// ...

在Closure中遍历目录

$generator->directory('app/Views', function ($generator) {
    $generator->sourceFile('layout.twig');
    // ...
});

目录中的源文件

$generator->sourceDirectory(app/Models');

目录中的模板

$generator->templateDirectory('app/Controllers', [
    ''
]);

保留目录(使用.gitkeep)

$generator->keepDirectory('app/Services');

作者

古川 文生 / Fumio Furukawa (fumio@jumilla.me)

许可证

MIT