/**
  * @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);
         }
     }
 }
Beispiel #2
0
 /**
  * {@inheritdoc}
  */
 public function unsubscribe(EventSubscriberInterface $subscriber)
 {
     foreach ($subscriber->subscribe() as $event => $params) {
         if (is_array($params) && is_array($params[0])) {
             foreach ($params as $listener) {
                 $this->off($event, [$subscriber, $listener[0]]);
             }
         } else {
             $this->off($event, [$subscriber, is_string($params) ? $params : $params[0]]);
         }
     }
 }
 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]));
         }
     }
 }
Beispiel #4
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) . "'.");
         }
     }
 }
 /**
  * Check if the handler is connected to a dispatcher
  *
  * @param  EventSubscriberInterface $subscriber  The event subscriber
  * @return boolean TRUE if the handler is already connected to the dispatcher. FALSE otherwise.
  */
 public function isSubscribed(EventSubscriberInterface $subscriber)
 {
     $handle = $subscriber->getHandle();
     return isset($this->_subscribers[$handle]);
 }
Beispiel #7
0
 /**
  * @inheritdoc
  */
 public function addSubscriber(EventSubscriberInterface $subscriber)
 {
     foreach ($subscriber->getSubscribedEvents() as $eventName => $method) {
         $this->addListener($eventName, [$subscriber, $method]);
     }
 }
Beispiel #8
0
 /**
  * @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;
 }
Beispiel #10
0
 public function unsubscribe(EventSubscriberInterface $subscriber)
 {
     $subscriber->unsubscribeFrom($this);
     return $this;
 }
Beispiel #11
0
 /**
  * Remove an event subscriber
  *
  * @param  EventSubscriberInterface  $subscriber An event subscriber
  * @return ObjectInterface The mixer
  */
 public function removeEventSubscriber(EventSubscriberInterface $subscriber)
 {
     $subscriber->unsubscribe($this->getEventPublisher());
     return $this->getMixer();
 }