symfony - 誰能說sf2中subscriber和listener的差別
怪我咯
怪我咯 2017-05-16 16:46:15
0
1
562

如題,listener大概清楚,subscriber比較暈。

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(1)
为情所困

註冊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)
    {
        // ...
    }
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板