2011-06-22 15 views
3

イベントリスナーをサービスとして定義するとき、どのイベントをどのイベントで使用するかを定義するにはどうすればよいですか?サービスとしてのsymfony2イベントリスナー

services.yml:

kernel.listener.desktop_init: 
    class: AirOS\TopBarModule\Listeners\InitAdminDesktopListener 
    tags: 
     - { name: kernel.listener } 

リスナークラス:

class InitAdminDesktopListener 
{ 
    public function onInitAdminDesktop(InitAdminDesktopEvent $event) 
    { 
     $session = $event->getSession(); 
     $session->set('test2', 'im a test value!'); 
    } 

} 

答えて

12

あなたがそこに道のほとんどです。

kernel.listener.desktop_init: 
    class: AirOS\TopBarModule\Listeners\InitAdminDesktopListener 
    tags: 
     - { name: kernel.listener, event: onInitAdminDesktop, method: onInitAdminDesktop } 

ノートのSymfonyの今後のRC1のリリースでは、あなたが(参照、タグ名にkernel.event_listenerの代わりkernel.listenerを使用する必要がありますこと:何が必要(Beta4のリリース以降)あなたのタグのeventmethodパラメータであり、詳細についてはUPDATE fileを参照してください)。

+1

感謝しています! – flyboarder

+0

kernel.listenerを使用する必要がありますか?blah.listener.whatEventのようなものを使用できますか? –

関連する問題