容器知道事件调度器
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.4,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.3(当前的稳定版本)。
容器知道事件调度器
3.3
的ContainerAwareEventDispatcher
类已经弃用Symfony 3.3和4.0在Symfony将ob娱乐下载被删除。使用EventDispatcher
closure-proxy注入。
介绍
的ContainerAwareEventDispatcher是一种特殊的EventDispatcher
实现耦合的服务容器的一部分DependencyInjection组件。它允许服务指定为事件监听器的EventDispatcher
非常强大。
服务是懒加载意义才会创建附加的服务作为监听器如果事件是派遣,需要这些听众。
设置
设置简单的通过注射ContainerInterface到ContainerAwareEventDispatcher:
1 2 3 4 5
使用ob娱乐下载\组件\DependencyInjection\ContainerBuilder;使用ob娱乐下载\组件\EventDispatcher\ContainerAwareEventDispatcher;美元containerBuilder=新ContainerBuilder ();美元调度程序=新ContainerAwareEventDispatcher (美元containerBuilder);
添加侦听器
的ContainerAwareEventDispatcher
可以直接加载指定的服务或服务实现吗EventSubscriberInterface。
下面的例子假定服务容器已经装满提到的任何服务。
请注意
服务必须标记为公共的容器。
添加服务
连接现有的服务定义,使用addListenerService ()方法的美元的回调
是一个数组的(serviceId, methodName美元)
:
1
美元调度程序- >addListenerService (美元eventName,(“foo”,“logListener”]);
添加用户服务
用户可以添加使用addSubscriberService ()方法的第一个参数是服务ID用户服务,和第二个参数是服务的类名(必须实现EventSubscriberInterface)如下:
1 2 3 4
美元调度程序- >addSubscriberService (“kernel.store_subscriber”,“StoreSubscriber”);
的EventSubscriberInterface
正如您所期望的是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32
使用ob娱乐下载\组件\EventDispatcher\EventSubscriberInterface;使用ob娱乐下载\组件\HttpKernel\KernelEvents;/ /……类StoreSubscriber实现了EventSubscriberInterface{公共静态函数getSubscribedEvents(){返回[KernelEvents::响应= > [[“onKernelResponsePre”,10]、[“onKernelResponsePost”,0),),“store.order”= > [“onStoreOrder”,0),);}公共函数onKernelResponsePre(FilterResponseEvent美元事件){/ /……}公共函数onKernelResponsePost(FilterResponseEvent美元事件){/ /……}公共函数onStoreOrder(FilterOrderEvent美元事件){/ /……}}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。