MTRGen

MTRGenはJSON、YAML、NEON等のテンプレートからPHPファイルを生成するオープンソースのCLIファイルジェネレーターエンジンです。
元となるテンプレートファイルを要件に合わせて設定すれば任意の内容でPHPファイルを生成できる、というもので、CLIとして提供されています。
任意の場所に変数(<% hogehoge %>) を追加して再利用可能なテンプレートを作成し、引数に基づいて動的に内容を変更可能となっています。例えば下記でいうとnamespaceやname等の変数を用意しています。
{
"name": "StaticFactory",
"filename": "staticfactory.mtr",
"path": "app/<% namespace %>/factories",
"file": {
"strict": true,
"namespace": {
"name": "App\<% namespace %>",
"class": {
"name": "<% name %>StaticFactory",
"methods": [
{
"name": "create<% name %>",
"static": true,
"visibility": "public",
"return": "App\Email\<% name %>",
"body": [
"$<% name|lcfirst %> = new <% name %>();",
"return $<% name|lcfirst %>;"
]
}
]
}
}
}
}
👇 このテンプレートを元に以下を代入すれば
'namespace' => 'Model\Entity' 'name' => 'EntityManager'
👇 以下のようなPHPファイルを生成できます。
<?php
declare(strict_types=1);
namespace App\Model\Entity;
class EntityManagerStaticFactory
{
public static function createEntityManager(): EntityManager
{
$entityManager = new EntityManager();
return $entityManager;
}
}
ボイラープレート的なものだと考えて差し支えないと思います。
vendor/bin/mtrgen generate --path=templates/MyTemplate.json 'name=MyClass'
PHPファイルの生成はCLIで手軽に行えます。使い慣れれば楽かもしれません。よく使うコードをテンプレート化しておけば捗りそう。ライセンスはMITとの事。
