/** * Trigger event * * @param EventInterface $event * @return Result\ResultInterface */ public function trigger(EventInterface $event) { $results = new Result\Standard(); $eventName = $event->getName(); foreach ($this->getEventListeners($eventName) as $listener) { if ($listener instanceof \Closure) { $result = $listener($event); } else { $result = call_user_func($listener, $event); } $results->append($result); if ($event->isStopped()) { break; } } return $results; }