2013-08-25 10 views
8

Uygulamamda kayıtlı olan her dinleyici ve bunların öncelikleriyle birlikte bir liste almak istiyorum. Bu liste kendi dinleyicileri ve Symfony çekirdeği veya diğer etkin paketlerin de kayıtlı olduğu dinleyicileri içermelidir.Symfony2'de her dinleyici ile bir liste almak

Bu mümkün mü?

Teşekkür

cevap

6

Sen kaptan event dispatcher almak ve getListeners fonksiyonu ile olaylara bakmak olabilir. kontrolörün

$evd = $this->get('event_dispatcher'); 
$listeners = $evd->getListeners(); 

Açıklama

/** 
* Gets the listeners of a specific event or all listeners. 
* 
* @param string $eventName The name of the event 
* 
* @return array The event listeners for the specified event, or all event listeners by event name 
*/ 
public function getListeners($eventName = null); 

Örnek dikkatli olun, doktrin kendi olay dağıtıcısı vardır.

/** @var $em EntityManager */ 
$em = $this->getDoctrine()->getManager(); 
$evd = $em->getEventManager(); 
$listeners = $evd->getListeners(); 
+2

hangi ' getListeners döndü (sf 2.3). Ayrıştırmak için aşağıdakileri yazmayı bitirdim: '' $ dispatcher = $ this-> get ('event_dispatcher'); foreach ($ dispatcher-> getListeners() $ dinleyici olarak) {foreach ($ dinleyici olarak $ dinleyiciler); {foreach ($ detay olarak dinleyici) {if (gettype ($ details) == 'string') {echo "($ details)"; echo '
'; } else {echo get_class ($ detaylar); }}}} '' – Sam

5

size sadece CLI kullanabilirsiniz web sitenizde görüntülemek için kod yazmak istemiyorsanız: Ben oldukça zor ben diziden istediği bilgi almak için bulundu

php app/console debug:event-dispatcher 
İlgili konular