Laravel如何仅列出用户自行创建的自定义Artisan命令
Laravel 仅展示自定义 Artisan 命令的方法
方法1:使用自带的命名空间过滤参数 无需修改代码,推荐
Laravel 的 list 命令本身支持 --namespace 参数,可直接过滤指定命名空间下的命令,你的自定义命令默认都在 App\Console\Commands 命名空间下,执行以下命令即可:
# Linux/Mac 环境 php artisan list --namespace=App\\Console\\Commands # Windows 环境 php artisan list --namespace=App\Console\Commands
执行后只会输出你自己在 app/Console/Commands 目录下创建的自定义命令,不会显示 Laravel 内置命令。
方法2:创建专属的自定义命令列表命令 适合高频使用场景
如果你觉得每次输入长参数太麻烦,可以自己写一个专属命令来实现一键查询:
- 生成新的命令文件:
php artisan make:command ListCustomCommands
- 打开生成的
app/Console/Commands/ListCustomCommands.php文件,修改代码如下:
<?php namespace App\Console\Commands; use Illuminate\Console\Command; class ListCustomCommands extends Command { protected $signature = 'custom:list'; protected $description = '展示所有自定义的 Artisan 命令'; public function handle() { // 调用 list 命令,自动传入命名空间参数 $this->call('list', [ '--namespace' => 'App\Console\Commands' ]); } }
- 之后只要执行
php artisan custom:list就能直接看到所有自定义命令了。
不建议直接修改 Laravel 内核的 list 命令逻辑,会导致后续框架升级时出现冲突,上述两种方案已经可以覆盖绝大多数使用场景。
内容的提问来源于stack exchange,提问作者Petr
相关产品推荐
相关产品推荐

