我有两个捆绑包:
- 发件人捆绑
- 接收包
首先进行一些操作并分派一个事件,比如说something.done
. 现在我想接收这个事件并在 ReceiverBundle 中处理它,其中包含侦听器和分配给它的适当操作。我当然不想$eventDispatcher->addListener()
在 SenderBundle 中!但我想自动为定义的事件注册监听器!
我想services.xml
在 ReceiverBundle 中创建一个:
<services>
<service id="some_listener" class="My\ReceiverBundle\Class">
<tag name="kernel.event_handler" event="something.done" method="onSomethingDone" />
</service>
</services>
这是使用 DependencyInjection 自动加载的。
我发现这有点像工作……但不是。我管理的内容 - 发送事件后注册监听器。为什么?!
我可以在事件的调试工具栏中将我的事件视为“未调用侦听器”。我猜这是因为监听器是在事件发送后启动和注册的。
如何注册 Listener 与我的其他 Bundle 一起使用?它是在 Doctrine (doctrine.event_listener) 中以某种方式制作的,但我无法弄清楚它是如何完成的。:/