我有一个实现EventSubscriberInterface的订阅者。但是,在Event dispatcher component documentation中,如果要订阅某个活动,我应该致电$dispatcher->addSubscriber()
。
现在,对于我的示例,假设您有一个Mailer
类订阅某些事件并发送电子邮件。我的基本问题是,在哪里可以将其添加到应用程序中,以便将此对象作为应用程序范围内的侦听器添加?换句话说,在事件发生之前,我应该在哪里调用必须运行的$dispatcher->addSubscriber()
?
答案 0 :(得分:1)
我一遍又一遍地重复着自己:
Dev的规则编号1(一):手册页是程序员最好的朋友
您需要了解的所有信息都在Symfony Docs,您感兴趣的部分如下:
配置监听器/订阅者
现在已经创建了类,您只需要将其注册为服务,并通过使用特殊的“标记”通知Symfony它是kernel.exception事件的“监听器”: YAML
# app/config/config.yml
services:
kernel.listener.your_listener_name:
class: Acme\DemoBundle\EventListener\AcmeExceptionListener
tags:
- { name: kernel.event_listener, event: kernel.exception, method: onKernelException }