ContainerAwareEventDispatcher
extends EventDispatcher
in package
Lazily loads listeners and subscribers from the dependency injection container.
Tags
Table of Contents
- $container : mixed
- $listenerIds : mixed
- The service IDs of the event listeners and subscribers.
- $listeners : mixed
- The services registered as listeners.
- $sorted : mixed
- __construct() : mixed
- addListener() : mixed
- Adds an event listener that listens on the specified events.
- addListenerService() : mixed
- Adds a service as event listener.
- addSubscriber() : mixed
- Adds an event subscriber.
- addSubscriberService() : mixed
- Adds a service as event subscriber.
- dispatch() : Event
- Dispatches an event to all registered listeners.
- getContainer() : mixed
- getListenerPriority() : int|null
- Gets the listener priority for a specific event.
- getListeners() : array<string|int, mixed>
- Gets the listeners of a specific event or all listeners sorted by descending priority.
- hasListeners() : bool
- Checks whether an event has any registered listeners.
- removeListener() : mixed
- Removes an event listener from the specified events.
- removeSubscriber() : mixed
- doDispatch() : mixed
- Triggers the listeners of an event.
- lazyLoad() : mixed
- Lazily loads listeners for this event from the dependency injection container.
- sortListeners() : mixed
- Sorts the internal list of listeners for the given event by priority.
Properties
$container
private
mixed
$container
$listenerIds
The service IDs of the event listeners and subscribers.
private
mixed
$listenerIds
= []
$listeners
The services registered as listeners.
private
mixed
$listeners
= []
$sorted
private
mixed
$sorted
= []
Methods
__construct()
public
__construct(ContainerInterface $container) : mixed
Parameters
- $container : ContainerInterface
Return values
mixed —addListener()
Adds an event listener that listens on the specified events.
public
addListener(mixed $eventName, mixed $listener, mixed $priority) : mixed
Parameters
- $eventName : mixed
-
The event to listen on
- $listener : mixed
-
The listener
- $priority : mixed
-
The higher this value, the earlier an event listener will be triggered in the chain (defaults to 0)
Return values
mixed —addListenerService()
Adds a service as event listener.
public
addListenerService(string $eventName, array<string|int, mixed> $callback, int $priority) : mixed
Parameters
- $eventName : string
-
Event for which the listener is added
- $callback : array<string|int, mixed>
-
The service ID of the listener service & the method name that has to be called
- $priority : int
-
The higher this value, the earlier an event listener will be triggered in the chain. Defaults to 0.
Tags
Return values
mixed —addSubscriber()
Adds an event subscriber.
public
addSubscriber(EventSubscriberInterface $subscriber) : mixed
Parameters
- $subscriber : EventSubscriberInterface
Return values
mixed —addSubscriberService()
Adds a service as event subscriber.
public
addSubscriberService(string $serviceId, string $class) : mixed
Parameters
- $serviceId : string
-
The service ID of the subscriber service
- $class : string
-
The service's class name (which must implement EventSubscriberInterface)
Return values
mixed —dispatch()
Dispatches an event to all registered listeners.
public
dispatch(mixed $eventName[, Event $event = null ]) : Event
Parameters
- $eventName : mixed
-
The name of the event to dispatch. The name of the event is the name of the method that is invoked on listeners.
- $event : Event = null
-
The event to pass to the event handlers/listeners If not supplied, an empty Event instance is created
Return values
Event —getContainer()
public
getContainer() : mixed
Return values
mixed —getListenerPriority()
Gets the listener priority for a specific event.
public
getListenerPriority(mixed $eventName, mixed $listener) : int|null
Parameters
- $eventName : mixed
-
The name of the event
- $listener : mixed
-
The listener
Return values
int|null —The event listener priority
getListeners()
Gets the listeners of a specific event or all listeners sorted by descending priority.
public
getListeners([mixed $eventName = null ]) : array<string|int, mixed>
Parameters
- $eventName : mixed = null
-
The name of the event
Return values
array<string|int, mixed> —The event listeners for the specified event, or all event listeners by event name
hasListeners()
Checks whether an event has any registered listeners.
public
hasListeners([mixed $eventName = null ]) : bool
Parameters
- $eventName : mixed = null
-
The name of the event
Return values
bool —true if the specified event has any listeners, false otherwise
removeListener()
Removes an event listener from the specified events.
public
removeListener(mixed $eventName, mixed $listener) : mixed
Parameters
- $eventName : mixed
-
The event to remove a listener from
- $listener : mixed
-
The listener to remove
Return values
mixed —removeSubscriber()
public
removeSubscriber(EventSubscriberInterface $subscriber) : mixed
Parameters
- $subscriber : EventSubscriberInterface
Return values
mixed —doDispatch()
Triggers the listeners of an event.
protected
doDispatch(array<string|int, callable> $listeners, string $eventName, Event $event) : mixed
This method can be overridden to add functionality that is executed for each listener.
Parameters
- $listeners : array<string|int, callable>
-
The event listeners
- $eventName : string
-
The name of the event to dispatch
- $event : Event
-
The event object to pass to the event handlers/listeners
Return values
mixed —lazyLoad()
Lazily loads listeners for this event from the dependency injection container.
protected
lazyLoad(string $eventName) : mixed
Parameters
- $eventName : string
-
The name of the event to dispatch. The name of the event is the name of the method that is invoked on listeners.
Return values
mixed —sortListeners()
Sorts the internal list of listeners for the given event by priority.
private
sortListeners(string $eventName) : mixed
Parameters
- $eventName : string
-
The name of the event