/** * {@inheritDoc} */ public function detach(EventManagerInterface $events) { foreach ($this->listeners as $index => $callback) { $events->detach($callback); unset($this->listeners[$index]); } }
/** * 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); }
/** * {@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(); }
public function setEventManager(EventManagerInterface $events) { $this->events = $events; $events->attach('dispatch', array($this, 'checkOptions'), 10); }