You are here

public function ContainerAwareEventDispatcher::addSubscriber in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher::addSubscriber()
  2. 10 core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher::addSubscriber()

File

core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php, line 258

Class

ContainerAwareEventDispatcher
A performance optimized container aware event dispatcher.

Namespace

Drupal\Component\EventDispatcher

Code

public function addSubscriber(EventSubscriberInterface $subscriber) {
  foreach ($subscriber
    ->getSubscribedEvents() as $event_name => $params) {
    if (is_string($params)) {
      $this
        ->addListener($event_name, [
        $subscriber,
        $params,
      ]);
    }
    elseif (is_string($params[0])) {
      $this
        ->addListener($event_name, [
        $subscriber,
        $params[0],
      ], isset($params[1]) ? $params[1] : 0);
    }
    else {
      foreach ($params as $listener) {
        $this
          ->addListener($event_name, [
          $subscriber,
          $listener[0],
        ], isset($listener[1]) ? $listener[1] : 0);
      }
    }
  }
}