public function dispatch($event, $context = null) { if (!$event instanceof Event) { $event = new Event(strval($event), $context); } if ($context) { $event->setContext($context); } if ($this->delegateDispatcher instanceof EventDispatcherInterface) { $this->delegateDispatcher->dispatch($event); return; } /** @noinspection PhpParamsInspection */ $event->setTarget($this); $chain = []; /** @var EventDispatcherInterface $dispatcher */ $dispatcher = $this; do { $chain[] = $dispatcher; } while ($dispatcher = $dispatcher->getParentEventDispatcher()); if (!$event->doesBubble()) { // this event uses capturing method $chain = array_reverse($chain); } foreach ($chain as $dispatcher) { /** @noinspection PhpUndefinedMethodInspection */ $dispatcher->doDispatchEvent($event); if ($event->isPropogationStopped()) { break; } } }
/** * @return void */ public function shutdown() { if (!$this->booted) { return; } $this->dispatcher->dispatch(KernelEvents::BEFORE_MODULES_SHUTDOWN, $this->kernelEvent); foreach ($this->modules as $module) { $module->shutdown($this); } $this->dispatcher->dispatch(KernelEvents::AFTER_MODULES_SHUTDOWN, $this->kernelEvent); }
/** * Registers an onCoreException listener. * * @param EventDispatcher $dispatcher An EventDispatcher instance * @param integer $priority The priority */ public function register(EventDispatcherInterface $dispatcher) { $dispatcher->addListener(Events::onCoreException, $this); }
/** * * {@inheritdoc} * */ public function hasListeners($eventName = null) { return $this->dispatcher->hasListeners($eventName); }
/** * {@inheritdoc} */ public function getListeners($event = null) { return $this->events->getListeners($event); }
public function dispatchEvent(EventInterface $event) { $this->eventDispatcher->dispatchEvent($event); }
/** * {@inheritdoc} */ public function getEventClass() { return $this->events->getEventClass(); }