2016-09-26 11 views
7

1つのコンソールコマンドを実行するたびにメソッドを実行したいのですが、ルーメン内のすべてのコンソールコマンドのリスナーを作成するにはどうすればいいですか?コンソールコマンドのリスナーを作成する方法

私は、このイベントは\Symfony\Component\Console\Application::doRunCommandに解雇されていますが、イベントディスパッチャは、(メソッド上記のコメントを読んで添付されていない、ConsoleCommandEventのリスナーを作成することで試してみました: イベントディスパッチャは、アプリケーションに添付されている場合は、イベントがありますIlluminate\Console\Events\ArtisanStartingが仕事をするために役立つかもしれないが、それは別のイベントです:。また、このイベントを使用して)

更新コマンドのライフサイクルの間に派遣しました。そうすることで、いつでもphp artisanを実行すると、実際のコマンドを実行するかどうかに関係なく、コードが実行されます。

答えて

0

各コマンドの実行時にいくつかのメソッドを実行するだけであれば、このクラスを聴くことができます。

Illuminate\Console\Events\ArtisanStarting 

しかし、リスナー内のすべてのコマンドの名前を取得する方法はわかりません。

+0

このイベントは既にうまくいきました。しかし問題は、それが言うように、職人が始まったときに解雇されるということです!だから、 'php artisan'を実行するときはいつでも' php artisan --help'を見たいと思ってもイベントを起動します。そこで、私はディスパッチャーをつける方法を見つけようとします。 btw、あなたの最後の解決策よりもはるかに良い:) –

+0

@モハマド・メッディ・ハビビは、あなたがスムースを見つけたらここに書いてください。私はパラメータが 'php artisan'に送られて' --help'のようなオプションをチェックしないかどうかを確認する必要があると思います。 – mcklayin

+0

実際にコマンドかどうかをチェックして問題を解決するかどうか、私たちがしなければそれほど素晴らしいことではありません。 –

関連する問題