首页 > 解决方案 > 在 Laravel 中动态注册命令

问题描述

我能够以编程方式注册事件Illuminate\Support\Facades\Event,它是侦听器方法。我想以类似的方式动态注册命令。有没有办法在 Laravel 中做到这一点?或者除了在里面注册之外,在 Laravel 中最好的方法是什么app/Console/Kernel.php

更新 我可以通过以下代码注册一个类。


use Illuminate\Console\Application as Artisan;

if (app()->runningInConsole()) {
    Artisan::starting(function ($artisan) use ($commandClass) {
        $artisan->resolveCommands($commandClass);
    });
}

标签: laravellaravel-5

解决方案


如果你查看你的app/Console/Kernel.php,你应该看到这样的声明:

$this->load(__DIR__.'/Commands');

这意味着保存的所有命令类app/Console/Commands/将被自动加载和注册。此外,如果您使用 artisan 创建命令,例如:php artisan make:command MyCommand,该类将存储在app/Console/Commands/MyCommand.php.


推荐阅读