Laravel的PHP工匠调用所有的自定义命令

问题描述 投票:0回答:1

我仍在使用Laravel 5.3。 (我很快升级,但我坚持用这个版本在那之前)。我已经创建了几个命令,并在我的kernal.php文件中注册它们。下面是一个例子:

class Kernel extends ConsoleKernel
{
    protected $commands = [
        // one off commands
        Commands\Sproj\Command1::class,
        Commands\Sproj\Command2::class,
        Commands\Sproj\Command3::class,
        Commands\Sproj\Command4::class,

        // scheduled commands
        Commands\ScheduledCommand1::class,
        Commands\ScheduledCommand2::class,
        Commands\ScheduledCommand3::class,
    ];

    protected function schedule(Schedule $schedule)
    {
        $schedule->command('ScheduledCommand1')->dailyAt('14:00');
        $schedule->command('ScheduledCommand2')->dailyAt('15:00');
        $schedule->command('ScheduledCommand3')->dailyAt('16:00');
    }

    protected function commands()
    {
        require base_path('routes/console.php');
    }
}

中的一个命令的一个例子是这样的:

class Command1 extends Command
{
    protected $signature = 'sproj:command1';
    protected $description = 'Command Example';

    public function __construct()
    {
        parent::__construct();
    }

    public function handle()
    {
        echo 'Do something here';
    }
}

我想要执行“一次性”的一个命令,所以我使用类似php artisan sproj:command1

这并不工作,但也执行所有我所创建的其他命令。即使我运行一个内置的命令,如php artisan cache:clear,我所有的自定义命令正在运行

难道我做错了什么?

laravel command
1个回答
0
投票

有同样的问题。我的问题是,我做的,而不是__construct()方法在handle()方法的调用。

© www.soinside.com 2019 - 2024. All rights reserved.