diff --git a/library/Zend/EventManager/EventManager.php b/library/Zend/EventManager/EventManager.php index 476bbcab3fe..77487addd4a 100644 --- a/library/Zend/EventManager/EventManager.php +++ b/library/Zend/EventManager/EventManager.php @@ -154,12 +154,13 @@ public function triggerUntil($event, $context, $argv, $callback) $responses = new ResponseCollection; $e = new $this->eventClass($event, $context, $argv); + $handlers = $this->getHandlers($event); - if (empty($this->events[$event])) { + if ($handlers->isEmpty()) { return $this->triggerStaticHandlers($callback, $e, $responses); } - foreach ($this->events[$event] as $handler) { + foreach ($handlers as $handler) { $responses->push(call_user_func($handler->getCallback(), $e)); if ($e->propagationIsStopped()) { $responses->setStopped(true); @@ -170,6 +171,7 @@ public function triggerUntil($event, $context, $argv, $callback) break; } } + if (!$responses->stopped()) { $this->triggerStaticHandlers($callback, $e, $responses); }