@@ -220,11 +220,55 @@ determine which instance is passed.
220220 $containerBuilder->register('subscriber_service_id', \AcmeSubscriber::class)
221221 ->addTag('kernel.event_subscriber');
222222
223+ ``RegisterListenersPass `` resolves aliased class names which for instance
224+ allows to refer to an event via the fully qualified class name (FQCN) of the
225+ event class. The pass will read the alias mapping from a dedicated container
226+ parameter. This parameter can be extended by registering another compiler pass,
227+ ``AddEventAliasesPass ``::
228+
229+ use Symfony\Component\DependencyInjection\Compiler\PassConfig;
230+ use Symfony\Component\DependencyInjection\ContainerBuilder;
231+ use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
232+ use Symfony\Component\DependencyInjection\Reference;
233+ use Symfony\Component\EventDispatcher\DependencyInjection\AddEventAliasesPass;
234+ use Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass;
235+ use Symfony\Component\EventDispatcher\EventDispatcher;
236+
237+ $containerBuilder = new ContainerBuilder(new ParameterBag());
238+ $containerBuilder->addCompilerPass(new RegisterListenersPass(), PassConfig::TYPE_BEFORE_REMOVING);
239+ $containerBuilder->addCompilerPass(new AddEventAliasesPass([
240+ \AcmeFooActionEvent::class => 'acme.foo.action',
241+ ]));
242+
243+ $containerBuilder->register('event_dispatcher', EventDispatcher::class);
244+
245+ // registers an event listener
246+ $containerBuilder->register('listener_service_id', \AcmeListener::class)
247+ ->addTag('kernel.event_listener', [
248+ // will be translated to 'acme.foo.action' by RegisterListenersPass.
249+ 'event' => \AcmeFooActionEvent::class,
250+ 'method' => 'onFooAction',
251+ ]);
252+
253+ .. note ::
254+
255+ Note that ``AddEventAliasesPass `` has to be processed before ``RegisterListenersPass ``.
256+
223257 By default, the listeners pass assumes that the event dispatcher's service
224258 id is ``event_dispatcher ``, that event listeners are tagged with the
225- ``kernel.event_listener `` tag and that event subscribers are tagged
226- with the ``kernel.event_subscriber `` tag. You can change these default
227- values by passing custom values to the constructor of ``RegisterListenersPass ``.
259+ ``kernel.event_listener `` tag, that event subscribers are tagged
260+ with the ``kernel.event_subscriber `` tag and that the alias mapping is
261+ stored as parameter ``event_dispatcher.event_aliases ``. You can change these
262+ default values by passing custom values to the constructors of
263+ ``RegisterListenersPass `` and ``AddEventAliasesPass ``.
264+
265+ .. versionadded :: 4.3
266+
267+ Aliasing event names is possible since Symfony 4.3.
268+
269+ .. versionadded :: 4.4
270+
271+ The ``AddEventAliasesPass `` class was introduced in Symfony 4.4.
228272
229273.. _event_dispatcher-closures-as-listeners :
230274
0 commit comments