我正在为我的 Laravel 4 应用程序创建一个自定义 artisan 命令 (foo)。我可以从用户指南中看到如何接受参数和选项,例如
php artisan foo argument --option
Run Code Online (Sandbox Code Playgroud)
但是,如果我想要一个具有许多“方法”的自定义 artisan 命令,其风格与某些内置 artisan 命令(例如migrate:install )相同,该怎么办?我想做一些类似的东西:
php artisan foo:baz argument --option
Run Code Online (Sandbox Code Playgroud)
基于:冒号分隔符实现不同方法的推荐方法是什么?到目前为止,我发现尝试的只是为每个“方法”创建一个全新的 artisan 命令。有更有效的方法吗?
你是对的,你确实需要为每个方法一个新的 Artisan 命令(或者更确切地说是一个类)。然而,您所要做的就是在 中注册每个文件app/Console/Kernel.php,如果您决定稍后更改语法,Laravel 将自动选择任何更改,$signature而无需重命名任何文件。
对于您提到的 Laravel 示例,migrate,有一个目录,每个命令名称都有一个单独的文件(包括没有冒号的命令名称):
\n\n/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations
\n\n如果您有想要重用的代码(DRY),请注意,如果您检查上述命令,其中一些命令会使用Traits,例如Illuminate\\Console\\ConfirmableTrait \xe2\x80\x93 ,其中包含一个 verifyToProceed()方法,如果它正在生产中运行,将询问用户是否确实要继续。
\n\n注意:Artisan 语法在 5.1 中发生了变化,从$name(使用相当复杂的指定参数和选项的方式)到更简单的 $signature,它是向后兼容的。更多信息
| 归档时间: |
|
| 查看次数: |
2715 次 |
| 最近记录: |