2017-03-27 7 views
2

ServiceName1ServiceName2tag:'kernel.event_listener'event: kernel.request'の2つのサービスがSymfonyにある場合、kernel.requestイベントが発生し、これらのサービスに優先順位が設定されていないと、サービスメソッドが呼び出されますか?"kernel.request"イベントが発生したときに、サービスリスナメソッドが呼び出される順序は?

+1

厳密に言えば、明示的に設定されているかどうかにかかわらず、すべてのリスナーに優先度があります。優先順位が同じリスナーは、イベントマネージャーに追加された順に呼び出されます。しかし人生はそのようなことを心配するには短すぎます。優先順位を設定し、それを使って完了します。 – Cerad

答えて

1

これらのサービスは、彼らが書かれていなかった場合、リスナーは、それらが例えばservice.yml、またはサービスのファイルがロードされた順序(のように、サービスファイルに書かれているのと同じ順序に従うべきで呼び出される順序同じファイル内の)。

symfonyプロファイラの[イベント]パネルの[呼び出されたリスナー]タブには、優先順位が登録されているイベントリスナーのリストを含む同じ順序が表示されます。あなたのコマンドラインタイプのSymfonyについて

php app/console debug:event-dispatcher kernel.request 

からsymfonyの< 3.0の場合

0

> 3.0使用

php bin/console debug:event-dispatcher kernel.request 

、それは登録済みのイベントリスナーと彼らが発火する優先順位のリストが表示されます。

関連する問題