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); }
/** * * {@inheritdoc} * */ public function dispatch($eventName, Event $event = null) { return $this->dispatcher->dispatch($eventName, $event); }
/** * @param EventInterface[] $events */ public function dispatch(array $events) { $this->eventDispatcher->dispatch($events); }