laravel - 在 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);
});
}
解决方案
如果你查看你的app/Console/Kernel.php
,你应该看到这样的声明:
$this->load(__DIR__.'/Commands');
这意味着保存的所有命令类app/Console/Commands/
将被自动加载和注册。此外,如果您使用 artisan 创建命令,例如:php artisan make:command MyCommand
,该类将存储在app/Console/Commands/MyCommand.php
.
推荐阅读
- python - 如何规范 scikit learn 的 kde?
- javascript - Fullcalendar - 无法在月视图中显示日期名称
- json - 如何在 Microsoft Flow 中转义 json 中的引号?
- javascript - 尝试使用 try 和 catch 作为条件
- python - 是否可以将 HyperDriveStep 与时间序列交叉验证一起使用?
- python - 使用正则表达式忽略不完整的数据集?
- java - 如何为我要进行基准测试的函数提供随机输入?
- php - 无法连接到 gmail-imap.l.google.com,993:连接被拒绝
- python - 为什么当用户按下按钮时我的 Tkinter GUI 会冻结(仅当我使用线程时)?
- reactjs - 如何在 React-Redux 应用程序中修复 431 请求标头字段太大