/** * @param EventInterface $event * @param EventSubscriberInterface $subscriber */ protected function dispatch(EventInterface $event, EventSubscriberInterface $subscriber) { $subscribedEvents = $subscriber->getSubscribedEvents(); foreach ($subscribedEvents as $eventName => $method) { if ($eventName == $event->getEventName()) { $subscriber->{$method}($event); } } }
public function removeSubscriber(EventSubscriberInterface $subscriber) { foreach ($subscriber->getSubscribedEvents() as $eventName => $params) { if (is_array($params) && is_array($params[0])) { foreach ($params as $listener) { $this->removeListener($eventName, array($subscriber, $listener[0])); } } else { $this->removeListener($eventName, array($subscriber, is_string($params) ? $params : $params[0])); } } }
/** * {@inheritdoc} */ public function unsubscribe(EventSubscriberInterface $subscriber) { foreach ($subscriber->getSubscribedEvents() as $event => $params) { if (is_array($params) && is_array($params[0])) { foreach ($params as $listener) { $this->off($event, array($subscriber, $listener[0])); } } else { $this->off($event, array($subscriber, is_string($params) ? $params : $params[0])); } } }
public function addSubscriber(EventSubscriberInterface $subscriber) { foreach ($subscriber->getSubscribedEvents() as $eventData) { if (!isset($eventData['event'])) { throw new \InvalidArgumentException(sprintf('Each event must have a "event" key.')); } $method = isset($eventData['method']) ? $eventData['method'] : self::getDefaultMethodName($eventData['event']); $class = isset($eventData['class']) ? strtolower($eventData['class']) : null; $format = isset($eventData['format']) ? $eventData['format'] : null; $this->listeners[$eventData['event']][] = array(array($subscriber, $method), $class, $format); unset($this->classListeners[$eventData['event']]); } }
public function addSubscriber(EventSubscriberInterface $subscriber) { foreach ($subscriber->getSubscribedEvents() as $eventName => $params) { if (is_string($params)) { $params = array($params); } if (is_array($params)) { foreach ($params as $listener) { $this->addListener($eventName, array($subscriber, $listener)); } } else { throw new Exception("Invalid listener type, given: '" . gettype($params) . "'."); } } }
/** * @inheritdoc */ public function addSubscriber(EventSubscriberInterface $subscriber) { foreach ($subscriber->getSubscribedEvents() as $eventName => $method) { $this->addListener($eventName, [$subscriber, $method]); } }
/** * @see EventDispatcherInterface::removeSubscriber */ public function removeSubscriber(EventSubscriberInterface $subscriber) { foreach ($subscriber->getSubscribedEvents() as $eventName => $method) { $this->removeListener($eventName, array($subscriber, $method)); } }
/** * @param EventSubscriberInterface $subscriber * @return $this * @throws \Exception */ public function removeSubscriber(EventSubscriberInterface $subscriber) { $listeners = $subscriber->getSubscribedEvents(); foreach ($listeners as $event => $listener) { try { $this->removeListener($event, array($subscriber, $listener)); } catch (\Exception $e) { throw $e; } } return $this; }