搜索

首页  >  问答  >  正文

symfony - 谁能说一下sf2中subscriber和listener的区别

如题,listener大概清楚,subscriber比较晕。

怪我咯怪我咯2793 天前564

全部回复(1)我来回复

  • 为情所困

    为情所困2017-05-16 16:48:15

    注册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)
        {
            // ...
        }
    }

    回复
    0
  • 取消回复