0
之間的全球事件偵聽器我有兩個軟件包:Symfony2的 - 如何註冊捆綁
- SenderBundle
- ReceiverBundle
首先提出了一些行動,並派遣一個事件,讓我們說,something.done
。現在我想接收這個事件,並在ReceiverBundle中處理它,它包含監聽器和分配給它的適當操作。當然,我不想在SenderBundle中$eventDispatcher->addListener()
!但我想自動爲定義的事件註冊監聽器!
我想通了,以創建一個ReceiverBundle與services.xml
:
<services>
<service id="some_listener" class="My\ReceiverBundle\Class">
<tag name="kernel.event_handler" event="something.done" method="onSomethingDone" />
</service>
</services>
這是自動加載與DependencyInjection。
我想出了這是像工作......但沒有。我管理的內容 - Listener在事件發送後註冊。爲什麼?!
我可以在事件的調試工具欄中看到我的事件爲「未調用的偵聽器」。我想這是因爲Listener是在事件發送後啓動並註冊的。
如何註冊Listener與我的其他軟件包一起工作?它在Doctrine(doctrine.event_listener)中以某種方式製作,但我無法弄清楚它是如何完成的。 :/