You are here

public function ContainerAwareEventDispatcher::removeListener in Zircon Profile 8

Same name in this branch
  1. 8 vendor/symfony/event-dispatcher/ContainerAwareEventDispatcher.php \Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher::removeListener()
  2. 8 core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher::removeListener()
Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher::removeListener()

Removes an event listener from the specified events.

Parameters

string $eventName The event to remove a listener from:

callable $listener The listener to remove:

Overrides EventDispatcherInterface::removeListener

1 call to ContainerAwareEventDispatcher::removeListener()
ContainerAwareEventDispatcher::removeSubscriber in core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php
Removes an event subscriber.

File

core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php, line 182
Contains \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher.

Class

ContainerAwareEventDispatcher
A performance optimized container aware event dispatcher.

Namespace

Drupal\Component\EventDispatcher

Code

public function removeListener($event_name, $listener) {
  if (!isset($this->listeners[$event_name])) {
    return;
  }
  foreach ($this->listeners[$event_name] as $priority => $definitions) {
    foreach ($definitions as $key => $definition) {
      if (!isset($definition['callable'])) {
        if (!$this->container
          ->initialized($definition['service'][0])) {
          continue;
        }
        $definition['callable'] = [
          $this->container
            ->get($definition['service'][0]),
          $definition['service'][1],
        ];
      }
      if ($definition['callable'] === $listener) {
        unset($this->listeners[$event_name][$priority][$key]);
      }
    }
  }
}