为情所困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) { // ... } }