/**
  * {@inheritDoc}
  */
 public function detach(EventManagerInterface $events)
 {
     foreach ($this->listeners as $index => $callback) {
         $events->detach($callback);
         unset($this->listeners[$index]);
     }
 }
Exemplo n.º 2
0
 /**
  * Compose and trigger the event.
  *
  * @param string $eventName
  * @param LifecycleEventArgs $args
  */
 protected function trigger($eventName, LifecycleEventArgs $args)
 {
     $entity = $args->getEntity();
     $identifiers = [get_class($entity)];
     if ($entity instanceof OmekaResource) {
         // Add the identifier for a generic resource entity.
         $identifiers[] = 'Omeka\\Entity\\Resource';
     }
     $this->events->setIdentifiers($identifiers);
     $event = new OmekaEvent($eventName, $entity, ['services' => $this->services]);
     $this->events->trigger($event);
 }
Exemplo n.º 3
0
 /**
  * {@inheritDoc}
  */
 public function trigger($eventName, array $data = [], $persistent = true)
 {
     // use the persistent/old $event
     if ($persistent && $this->isTriggered($eventName)) {
         /* @var $event EventInterface */
         $event = $this->triggered[$eventName];
         // merget with new properties
         $event->setProperties($data, true);
         // create a new $event
     } else {
         // clone the prototype and config the new event
         $event = clone $this->event_proto;
         $event($eventName, null, $data);
         // mark as triggered
         $this->triggered[$event->getName()] = $event;
     }
     // trigger the event
     $this->event_manager->processEvent($event);
     return $event->getResults();
 }
Exemplo n.º 4
0
 public function setEventManager(EventManagerInterface $events)
 {
     $this->events = $events;
     $events->attach('dispatch', array($this, 'checkOptions'), 10);
 }