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との事。