From 1d7f43eed4eb5c53a1227efc81fb5cd2b049fe72 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Thu, 26 Aug 2010 11:18:15 +0200 Subject: [PATCH] [Framework] added logs when some listeners are not called because the event has already been processed --- src/Symfony/Framework/Debug/EventDispatcher.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Framework/Debug/EventDispatcher.php b/src/Symfony/Framework/Debug/EventDispatcher.php index 5497e81eb8..652b25cfca 100644 --- a/src/Symfony/Framework/Debug/EventDispatcher.php +++ b/src/Symfony/Framework/Debug/EventDispatcher.php @@ -67,7 +67,7 @@ class EventDispatcher extends BaseEventDispatcher */ public function notifyUntil(Event $event) { - foreach ($this->getListeners($event->getName()) as $listener) { + foreach ($this->getListeners($event->getName()) as $i => $listener) { if (null !== $this->logger) { $this->logger->debug(sprintf('Notifying (until) event "%s" to listener "%s"', $event->getName(), $this->listenerToString($listener))); } @@ -75,6 +75,11 @@ class EventDispatcher extends BaseEventDispatcher if (call_user_func($listener, $event)) { if (null !== $this->logger) { $this->logger->debug(sprintf('Listener "%s" processed the event "%s"', $this->listenerToString($listener), $event->getName())); + + $listeners = $this->getListeners($event->getName()); + while (++$i < count($listeners)) { + $this->logger->debug(sprintf('Listener "%s" was not called for event "%s"', $this->listenerToString($listeners[$i]), $event->getName())); + } } $event->setProcessed(true);