有没有办法从php artisan list
中删除一些命令?
我发现它太长了,我经常需要滚动或进行踩踏。例如,某些我不使用队列并隐藏队列命令的项目将非常有用。
答案 0 :(得分:11)
只需覆盖ArtisanServiceProvider,例如:
创建一个新的提供者将其命名为ProductionArtisanServiceProvider
php artisan make:provider ProductionArtisanServiceProvider
打开新提供程序并将其更改为以下内容
namespace App\Providers;
use Illuminate\Foundation\Providers\ArtisanServiceProvider as IlluminateProvider;
class ProductionArtisanServiceProvider extends IlluminateProvider
{
protected $devCommands = [
'AppName' => 'command.app.name',
];
}
您在上面看到我覆盖了$ devCommands 完整列表
查看Illuminate \ Foundation \ Providers \ ArtisanServiceProvider
最后在您的注册功能中的AppServiceProvider添加您的新提供商,我们确保它只在生产环境中加载
if ($this->app->environment() == 'production') {
$this->app->register(\App\Providers\ProductionArtisanServiceProvider::class);
}
现在所有不必要的命令都消失了
答案 1 :(得分:2)
没有好办法。大多数核心工匠命令列表存储在$commands
属性中的Illuminate\Foundation\Providers\ArtisanServiceProvider
类中。有些是直接从各自的服务提供商注册的,例如Illuminate\Queue\QueueServiceProvider
中的队列服务提供商。所以理论上你可以在那里评论它们,但是你首先在vendor
目录中不应该进行任何更改,因为它们可以在任何更新时撤消。
如果您发现自己不得不经常查看命令列表,那么最好花一点时间来提交内存至少定期使用的命令,因为它会使您的工作流程远更有效率。
如果您将zsh与Oh My Zsh一起使用,那么您可以在所有已注册的Laravel命令中使用包含终端自动完成功能的laravel5
插件。只需编写php artisan
并按TAB即可获得命令的自动完成列表,无需滚动:)。
答案 2 :(得分:1)
由Bogdan更新,没有好的方法可以从工匠名单中删除命令。一个可用选项是使用具有相同$signature.
答案 3 :(得分:0)
如果您感兴趣的所有命令都以相同的前缀开头,例如prefix:
,则可以使用artisan list prefix
列出它们。
答案 4 :(得分:-1)
下车。我终于找到了一个好的解决方案用grep。
创建我自己的bash别名将此添加到我的〜/ .bashrc
我的所有命令都以mycompany:command
开头使用3个字母的快捷方式。 can
对我而言,因为它是我公司名称的前3个字母。
alias can='php artisan | grep mycompany'