如题,listener大概清楚,subscriber比较晕。
走同样的路,发现不同的人生
注册listener(某个class的某个method)的时候需要指定事件。
而subscriber通过getSubscribedEvents()静态方法来指定事件的处理,可以理解成批量注册。getSubscribedEvents()的返回值是个数组,键是事件名称,对应的嵌套数组里列举这个事件需要触发的方法以及其优先级(值大的先触发,-1024~1024)
class ExampleSubscriber implements EventSubscriberInterface { static public function getSubscribedEvents() { return array( 'kernel.response' => array( // <-- 事件 array('onKernelResponseFirst', 5), // <-- 第一个回调,优先级5 array('onKernelResponseSecond', 0) // <-- 第二个回调,优先级0 ) ); } public function onKernelResponseFirst(FilterResponseEvent $event) { // ... } public function onKernelResponseSecond(FilterResponseEvent $event) { // ... } }
注册listener(某个class的某个method)的时候需要指定事件。
而subscriber通过getSubscribedEvents()静态方法来指定事件的处理,可以理解成批量注册。getSubscribedEvents()的返回值是个数组,键是事件名称,对应的嵌套数组里列举这个事件需要触发的方法以及其优先级(值大的先触发,-1024~1024)