/** * {@inheritdoc} */ public function dispatch($event) { $event = $this->ensureEvent($event); // pre dispatch event $preDispatchEvent = new PreDispatchEvent($event); $eventName = $preDispatchEvent->eventName(); if ($listeners = $this->eventListeners($eventName)) { $this->doDispatch($listeners, $preDispatchEvent); } // dispatch event $eventName = $event->eventName(); if ($listeners = $this->eventListeners($eventName)) { $this->doDispatch($listeners, $event); } // post dispatch event $postDispatchEvent = new PostDispatchEvent($event); $eventName = $postDispatchEvent->eventName(); if ($listeners = $this->eventListeners($eventName)) { $this->doDispatch($listeners, $postDispatchEvent); } return $event; }
/** * @param PostDispatchEvent $postDispatchEvent */ public function onPostDispatchEvent(PostDispatchEvent $postDispatchEvent) { if ($this->postDispatchHandler) { call_user_func($this->postDispatchHandler, $postDispatchEvent->event(), $this->io); } else { $this->io->writeLine('<c1>' . $this->eventToString($postDispatchEvent->event()) . '</c1> success!!'); $this->io->writeLine(''); } }