【发布时间】:2019-09-19 08:44:07
【问题描述】:
我写了几个工匠命令。
它们都有共同的功能,所以我没有扩展 Command 类,而是编写了一个 MyBaseCommand 类,所以所有命令都扩展了这个:
namespace App\Console\Commands;
use Illuminate\Console\Command;
class SomeCommand extends MyBaseCommand
{
protected $signature = 'mycommands:command1';
protected $description = 'Some description';
:
:
还有基类:
namespace App\Console\Commands;
class MyBaseCommand extends Command
{
:
:
问题是由于某种原因这些命令不再以php artisan 列出。
知道如何强制 laravel 也列出这些命令吗?
【问题讨论】:
-
MyBaseCommand是否扩展了 Laravel 的基础Command类? -
您能否发布一些基类及其子类的示例代码?还有你的签名是什么样子的?您的命令是否也注册在 commands 方法或 commands 属性中?
-
@aken-roberts,是的 - 我刚刚更新了问题。
-
@superkevin,我没有在任何地方注册我的课程。但是,当它们直接扩展
Command类时,它们被列出了。 -
@guyaloni 您需要在
kernel.php中注册所有子命令类,即使您扩展了基本命令类。 Laravel 检查该文件以列出所有自定义命令。