/**
  * Call the extensions
  *
  * @param   EventInterface $event The event
  *
  * @return  EventInterface
  */
 public function dispatch(EventInterface $event)
 {
     $this->logger->debug(__METHOD__ . ": Dispatching " . $event->getName());
     $name = $event->getName();
     if (!key_exists($name, $this->loadedEvents)) {
         $this->logger->debug(__METHOD__ . ": - Loading extension listeners");
         $this->loadExtensionListeners($name, $this->factory->getExtensions());
         $this->loadedEvents[$name] = $name;
     }
     $result = parent::dispatch($event);
     $this->logger->debug(__METHOD__ . ": Done.");
     return $result;
 }
Exemplo n.º 2
0
 /**
  * Add an event to this dispatcher, only if it is not existing.
  *
  * @param   EventInterface  $event  The event.
  *
  * @return  Dispatcher  This method is chainable.
  *
  * @since   1.0
  */
 public function addEvent(EventInterface $event)
 {
     if (!isset($this->events[$event->getName()])) {
         $this->events[$event->getName()] = $event;
     }
     return $this;
 }
Exemplo n.º 3
0
 /**
  * Event listener for the onAfterDelete event.
  *
  * @param   EventInterface  $event  The event we're handling
  *
  * @return  void
  *
  * @since   4.0
  */
 public final function onAfterDeleteListener(EventInterface $event)
 {
     $k = $event->getArgument('k', false);
     $this->onBeforeDelete($k);
 }
Exemplo n.º 4
0
 /**
  * Dispatches an event to all registered listeners.
  *
  * @param   EventInterface $event The event to pass to the event handlers/listeners.
  *
  * @return  EventInterface
  *
  * @since   __DEPLOY_VERSION__
  */
 public function dispatch(EventInterface $event)
 {
     $this->logger->debug(__METHOD__ . ": Dispatching " . $event->getName());
     if (isset($this->listeners[$event->getName()])) {
         foreach ($this->listeners[$event->getName()] as $listener) {
             if ($event->isStopped()) {
                 return $event;
             }
             call_user_func($listener, $event);
         }
     }
     $this->logger->debug(__METHOD__ . ": Done.");
     return $event;
 }