0

我有两个捆绑包:

  • 发件人捆绑
  • 接收包

首先进行一些操作并分派一个事件,比如说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) 中以某种方式制作的,但我无法弄清楚它是如何完成的。:/

4

1 回答 1

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>
于 2012-05-08T08:43:44.283 回答