创建一个用于生成自定义类或文件的工匠命令

问题描述:

创建用于生成自定义类或文件的工匠命令的最佳方式(或者实际完成的方式)是什么?像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软件包。

+1

@patricus干得好。我也查看了供应商,但我想我还不够彻底:-)。所以我会将mu stub文件放在'app \ Console \ Commands \ stubs'中。谢啦 –