2012-05-07 14 views
0

間のグローバルイベントリスナーを登録する方法を私は2つのバンドルを得ました。今私はこのイベントを受け取り、それに割り当てられたリスナーと適切なアクションを含むReceiverBundleで処理したいと思います。私はもちろんSenderBundleの$eventDispatcher->addListener()にしたくありません!しかし、私は定義されたイベントのリスナーを自動的に登録したい!依存性の注入を自動的にロードされSymfony2のは、バンドル

<services> 
    <service id="some_listener" class="My\ReceiverBundle\Class"> 
     <tag name="kernel.event_handler" event="something.done" method="onSomethingDone" /> 
    </service> 
</services> 

私はとReceiverBundleで services.xmlを作成するために考え出しました。

私はそれが仕事のようなものだと分かった。私が管理しているもの - イベントが送信された後にリスナーが登録されます。なぜ?!

イベントのデバッグツールバーの[イベント]が[リスナーが呼び出されていない]と表示されます。イベントが送信された後にリスナーが開始され、登録されたからだと思います。

登録する方法他のバンドルで動作するリスナーはありますか? Doctrine(doctrine.event_listener)では何らかの形で作られていますが、どのように処理されたのかわかりません。 :/

答えて

0

あなたが代わりにkernel.event_listenerタグを使用したい:

<services> 
    <service id="some_listener" class="My\ReceiverBundle\Class"> 
     <tag name="kernel.event_listener" event="something.done" method="onSomethingDone" /> 
    </service> 
</services> 
関連する問題