创建一个用于生成自定义类或文件的工匠命令
问题描述:
创建用于生成自定义类或文件的工匠命令的最佳方式(或者实际完成的方式)是什么?像php artisan make:console
本身为我们的新工匠命令创建一个php类。创建一个用于生成自定义类或文件的工匠命令
从我能想到的,我们有两个选择:
添加使用PHP定界符新文件的模板(或新命令的类文件中的任何字符串对于这个问题),这是真的很混乱。
将模板文件放在某处,读取它,替换所需内容,然后创建新文件。但我不知道在哪里最好放置模板文件。
那么在Laravel处理这种情况是否有最佳做法?我搜索了它,但只有简单的手工命令创建的文章和文档。
答
Laravel使用.stub
文件作为模板,并替换模板内的标记。
既然你提到的make:console
命令,以供参考您可以在以下文件看看:
-
vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/console.stub
(on github)
此作出新的控制台命令的模板。 -
vendor/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php
(on github)
这是当你运行php artisan make:console
命令被执行的代码。
如果你想看看这样做的软件包,一个很好的例子是Laracasts的Jeffrey Way的generators软件包。
@patricus干得好。我也查看了供应商,但我想我还不够彻底:-)。所以我会将mu stub文件放在'app \ Console \ Commands \ stubs'中。谢啦 –