public function ContainerAwareEventDispatcher::getListeners in Zircon Profile 8.0
Same name in this branch
- 8.0 vendor/symfony/event-dispatcher/ContainerAwareEventDispatcher.php \Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher::getListeners()
- 8.0 core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher::getListeners()
Same name and namespace in other branches
- 8 core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher::getListeners()
Gets the listeners of a specific event or all listeners sorted by descending priority.
Parameters
string $eventName The name of the event:
Return value
array The event listeners for the specified event, or all event listeners by event name
Overrides EventDispatcherInterface::getListeners
1 call to ContainerAwareEventDispatcher::getListeners()
- ContainerAwareEventDispatcher::hasListeners in core/
lib/ Drupal/ Component/ EventDispatcher/ ContainerAwareEventDispatcher.php - Checks whether an event has any registered listeners.
File
- core/
lib/ Drupal/ Component/ EventDispatcher/ ContainerAwareEventDispatcher.php, line 130 - Contains \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher.
Class
- ContainerAwareEventDispatcher
- A performance optimized container aware event dispatcher.
Namespace
Drupal\Component\EventDispatcherCode
public function getListeners($event_name = NULL) {
$result = [];
if ($event_name === NULL) {
// If event name was omitted, collect all listeners of all events.
foreach (array_keys($this->listeners) as $event_name) {
$listeners = $this
->getListeners($event_name);
if (!empty($listeners)) {
$result[$event_name] = $listeners;
}
}
}
elseif (isset($this->listeners[$event_name])) {
// Sort listeners if necessary.
if (isset($this->unsorted[$event_name])) {
krsort($this->listeners[$event_name]);
unset($this->unsorted[$event_name]);
}
// Collect listeners and resolve callables if necessary.
foreach ($this->listeners[$event_name] as $priority => &$definitions) {
foreach ($definitions as $key => &$definition) {
if (!isset($definition['callable'])) {
$definition['callable'] = [
$this->container
->get($definition['service'][0]),
$definition['service'][1],
];
}
$result[] = $definition['callable'];
}
}
}
return $result;
}