diff --git a/EventDispatch.php b/EventDispatch.php index 9dbf985..0ec8a9f 100644 --- a/EventDispatch.php +++ b/EventDispatch.php @@ -43,7 +43,8 @@ class EventDispatch extends Component implements EventDispatcherInterface $lists->top(); while ($lists->valid()) { try { - call_user_func($lists->current(), $event); + $current = $lists->current(); + call_user_func($current, $event); } catch (\Throwable $exception) { $this->logger->error($exception->getMessage(), [$exception]); } diff --git a/EventProvider.php b/EventProvider.php index 257665d..659800d 100644 --- a/EventProvider.php +++ b/EventProvider.php @@ -23,7 +23,7 @@ class EventProvider implements ListenerProviderInterface public function getListenersForEvent(object $event): SplPriorityQueue { $queue = new SplPriorityQueue(); - $queue->setExtractFlags(SplPriorityQueue::EXTR_BOTH); + $queue->setExtractFlags(SplPriorityQueue::EXTR_DATA); // TODO: Implement getListenersForEvent() method. foreach ($this->_listeners[get_class($event)] ?? [] as $listener) { $queue->insert($listener->listener, $listener->priority);