从php artisan列表中删除命令

时间:2015-06-06 11:29:00

标签: php laravel

有没有办法从php artisan list中删除一些命令?

我发现它太长了,我经常需要滚动或进行踩踏。例如,某些我不使用队列并隐藏队列命令的项目将非常有用。

5 个答案:

答案 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目录中不应该进行任何更改,因为它们可以在任何更新时撤消。

如果您发现自己不得不经常查看命令列表,那么最好花一点时间来提交内存至少定期使用的命令,因为它会使您的工作流程更有效率。

如果您将zshOh 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'