我想在运行每个控制台命令时运行一个方法,如何为流明中的所有控制台命令创建一个监听器?
我尝试为ConsoleCommandEvent
创建一个侦听器,此事件在\Symfony\Component\Console\Application::doRunCommand
中触发,但事件调度程序尚未附加(请阅读方法上方的注释:
如果事件调度程序已附加到应用程序,则在命令的生命周期内也会调度事件。)
更新使用此事件:Illuminate\Console\Events\ArtisanStarting
可能有助于完成工作,但这是一个不同的事件。通过这样做,无论您是否运行实际命令,只要您运行php artisan
,您的代码就会被执行。
答案 0 :(得分:0)
如果你只需要在执行每个命令时执行一些方法,你就可以听这个类了。
Illuminate\Console\Events\ArtisanStarting
但我不知道如何在听众中获得每个命令的名称。
答案 1 :(得分:0)
在Laravel中,您可以收听CommandStarting
中的illuminate/console
事件。