2016-12-27 19 views

回答

1

你可以用多種方式做到這一點。其中之一就是不帶任何參數地致電EventDispatcher#getListeners,獲取以kernel.componentName.開頭的所有事件名稱的列表,並逐一訂閱它們。我認爲更簡單的方法是擴展EventDispatcher

use Symfony\Component\EventDispatcher\EventDispatcher; 
use Symfony\Component\EventDispatcher\Event; 

class MyEventDispatcher extends EventDispatcher 
{ 
    protected function doDispatch($listeners, $eventName, Event $event) 
    { 
     // add logic here 
     if (strpos($eventName, 'kernel.componentName.') === 0) { 
      // do something, like call another listener or a callback 
     } 


     parent::doDispatch($listeners, $eventName, $event); 
    } 
}