\Symfony\Component\EventDispatcherContainerAwareEventDispatcher

Lazily loads listeners and subscribers from the dependency injection container.

Listeners are registered on the manager and events are dispatched through the manager.

Summary

Methods
Properties
Constants
dispatch()
getListeners()
hasListeners()
addListener()
removeListener()
addSubscriber()
removeSubscriber()
__construct()
addListenerService()
addSubscriberService()
getContainer()
No public properties found
No constants found
doDispatch()
lazyLoad()
No protected properties found
N/A
sortListeners()
$listeners
$sorted
$container
$listenerIds
N/A

Properties

$listeners

$listeners : array

The services registered as listeners.

Type

array

$sorted

$sorted : 

Type

$container

$container : \Symfony\Component\DependencyInjection\ContainerInterface

The container from where services are loaded.

Type

\Symfony\Component\DependencyInjection\ContainerInterface

$listenerIds

$listenerIds : array

The service IDs of the event listeners and subscribers.

Type

array

Methods

dispatch()

dispatch(string  $eventName, \Symfony\Component\EventDispatcher\Event  $event = null) : \Symfony\Component\EventDispatcher\Event

Dispatches an event to all registered listeners.

Lazily loads listeners for this event from the dependency injection container.

Parameters

string $eventName

The name of the event to dispatch. The name of the event is the name of the method that is invoked on listeners.

\Symfony\Component\EventDispatcher\Event $event

The event to pass to the event handlers/listeners. If not supplied, an empty Event instance is created.

Throws

\InvalidArgumentException

if the service is not defined

Returns

\Symfony\Component\EventDispatcher\Event

getListeners()

getListeners(string  $eventName = null) : array

Gets the listeners of a specific event or all listeners sorted by descending priority.

Parameters

string $eventName

The name of the event

Returns

array —

The event listeners for the specified event, or all event listeners by event name

hasListeners()

hasListeners(string  $eventName = null) : boolean

Checks whether an event has any registered listeners.

Parameters

string $eventName

The name of the event

Returns

boolean —

true if the specified event has any listeners, false otherwise

addListener()

addListener(string  $eventName, callable  $listener, integer  $priority) 

Adds an event listener that listens on the specified events.

Parameters

string $eventName

The event to listen on

callable $listener

The listener

integer $priority

The higher this value, the earlier an event listener will be triggered in the chain (defaults to 0)

removeListener()

removeListener(string  $eventName, callable  $listener) 

Removes an event listener from the specified events.

Parameters

string $eventName

The event to remove a listener from

callable $listener

The listener to remove

addSubscriber()

addSubscriber(\Symfony\Component\EventDispatcher\EventSubscriberInterface  $subscriber) 

Adds an event subscriber.

The subscriber is asked for all the events he is interested in and added as a listener for these events.

Parameters

\Symfony\Component\EventDispatcher\EventSubscriberInterface $subscriber

The subscriber.

__construct()

__construct(\Symfony\Component\DependencyInjection\ContainerInterface  $container) 

Constructor.

Parameters

\Symfony\Component\DependencyInjection\ContainerInterface $container

A ContainerInterface instance

addListenerService()

addListenerService(string  $eventName, array  $callback, integer  $priority) 

Adds a service as event listener.

Parameters

string $eventName

Event for which the listener is added

array $callback

The service ID of the listener service & the method name that has to be called

integer $priority

The higher this value, the earlier an event listener will be triggered in the chain. Defaults to 0.

Throws

\InvalidArgumentException

addSubscriberService()

addSubscriberService(string  $serviceId, string  $class) 

Adds a service as event subscriber.

Parameters

string $serviceId

The service ID of the subscriber service

string $class

The service's class name (which must implement EventSubscriberInterface)

getContainer()

getContainer() 

doDispatch()

doDispatch(array<mixed,callable>  $listeners, string  $eventName, \Symfony\Component\EventDispatcher\Event  $event) 

Triggers the listeners of an event.

This method can be overridden to add functionality that is executed for each listener.

Parameters

array<mixed,callable> $listeners

The event listeners.

string $eventName

The name of the event to dispatch.

\Symfony\Component\EventDispatcher\Event $event

The event object to pass to the event handlers/listeners.

lazyLoad()

lazyLoad(string  $eventName) 

Lazily loads listeners for this event from the dependency injection container.

Parameters

string $eventName

The name of the event to dispatch. The name of the event is the name of the method that is invoked on listeners.

sortListeners()

sortListeners(string  $eventName) 

Sorts the internal list of listeners for the given event by priority.

Parameters

string $eventName

The name of the event.