public function detach(SubscriberInterface $subscriber)
 {
     foreach ($subscriber->getEvents() as $eventName => $listener) {
         $this->removeListener($eventName, [$subscriber, $listener[0]]);
     }
 }
Example #2
0
 /**
  * @param SubscriberInterface $sub
  *
  * @return MediatorInterface Fluent interface
  * @throws \DomainException
  * @throws \InvalidArgumentException
  * @throws \LengthException
  */
 public function removeSubscriber(SubscriberInterface $sub) : MediatorInterface
 {
     return $this->removeListenersByEventList($sub->getSubscribedEvents());
 }
Example #3
0
 /**
  * 解绑订阅者
  * @param SubscriberInterface $subscriber
  */
 function removeSubscriber(SubscriberInterface $subscriber)
 {
     foreach ($subscriber->getEvents() as $eventName => $method) {
         $this->unbind($eventName, [$subscriber, $method]);
     }
 }
Example #4
0
 /**
  * Adds a subscriber to this dispatcher which in its turn adds all the subscribed events.
  *
  * @param SubscriberInterface $subscriber The subscriber which can subscribe to multiple events
  */
 public function addSubscriber(SubscriberInterface $subscriber)
 {
     foreach ($subscriber->getSubscribedEvents() as $eventName => $callable) {
         $this->addListener($eventName, $callable);
     }
 }
Example #5
0
 /**
  * Removes an event subscriber.
  *
  * @param   SubscriberInterface  $subscriber  The subscriber.
  *
  * @return  void
  *
  * @since   __DEPLOY_VERSION__
  */
 public function removeSubscriber(SubscriberInterface $subscriber)
 {
     foreach ($subscriber->getSubscribedEvents() as $eventName => $params) {
         if (is_array($params)) {
             $this->removeListener($eventName, [$subscriber, $params[0]]);
         } else {
             $this->removeListener($eventName, [$subscriber, $params]);
         }
     }
 }