Пример #1
0
 /**
  * {@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;
 }
Пример #2
0
 /**
  * @param PreDispatchEvent $preDispatchEvent
  */
 public function onPreDispatchEvent(PreDispatchEvent $preDispatchEvent)
 {
     if ($this->preDispatchHandler) {
         call_user_func($this->preDispatchHandler, $preDispatchEvent->event(), $this->io);
     } else {
         $this->io->writeLine('<c1>------------------------------------------------------------------------</c1>');
         $this->io->writeLine('Dispatching <c1>' . $this->eventToString($preDispatchEvent->event()) . '</c1> with:');
         $this->io->writeLine('');
         $properties = $this->objectToPropertyArray($preDispatchEvent->event());
         $table = new Table(TableStyle::asciiBorder());
         $table->setHeaderRow(array_keys($properties));
         $table->addRow(array_values($properties));
         $table->render($this->io);
         $this->io->writeLine('');
     }
 }