如何为控制台命令创建侦听器

时间:2016-09-26 11:14:12

标签: php laravel console lumen

我想在运行每个控制台命令时运行一个方法,如何为流明中的所有控制台命令创建一个监听器?

我尝试为ConsoleCommandEvent创建一个侦听器,此事件在\Symfony\Component\Console\Application::doRunCommand中触发,但事件调度程序尚未附加(请阅读方法上方的注释:  如果事件调度程序已附加到应用程序,则在命令的生命周期内也会调度事件。

更新使用此事件:Illuminate\Console\Events\ArtisanStarting可能有助于完成工作,但这是一个不同的事件。通过这样做,无论您是否运行实际命令,只要您运行php artisan,您的代码就会被执行。

2 个答案:

答案 0 :(得分:0)

如果你只需要在执行每个命令时执行一些方法,你就可以听这个类了。

Illuminate\Console\Events\ArtisanStarting

但我不知道如何在听众中获得每个命令的名称。

答案 1 :(得分:0)

在Laravel中,您可以收听CommandStarting中的illuminate/console事件。