From 49c0a0a66da94be8b58600d12ed8955a20fc3b66 Mon Sep 17 00:00:00 2001 From: Ryan Weaver Date: Thu, 13 Jun 2019 14:51:57 -0400 Subject: [PATCH] renaming services to get better autowireable names and removing unnecessary section --- messenger/multiple_buses.rst | 80 +++++++----------------------------- 1 file changed, 15 insertions(+), 65 deletions(-) diff --git a/messenger/multiple_buses.rst b/messenger/multiple_buses.rst index 9742fba1a52..37af04fe812 100644 --- a/messenger/multiple_buses.rst +++ b/messenger/multiple_buses.rst @@ -24,16 +24,16 @@ an **event bus**. The event bus could have zero or more subscribers. framework: messenger: # The bus that is going to be injected when injecting MessageBusInterface - default_bus: messenger.bus.commands + default_bus: command.bus buses: - messenger.bus.commands: + command.bus: middleware: - validation - doctrine_transaction - messenger.bus.queries: + query.bus: middleware: - validation - messenger.bus.events: + event.bus: default_middleware: allow_no_handlers middleware: - validation @@ -52,15 +52,15 @@ an **event bus**. The event bus could have zero or more subscribers. - - + + - + - + @@ -73,20 +73,20 @@ an **event bus**. The event bus could have zero or more subscribers. $container->loadFromExtension('framework', [ 'messenger' => [ // The bus that is going to be injected when injecting MessageBusInterface - 'default_bus' => 'messenger.bus.commands', + 'default_bus' => 'command.bus', 'buses' => [ - 'messenger.bus.commands' => [ + 'command.bus' => [ 'middleware' => [ 'validation', 'doctrine_transaction', ], ], - 'messenger.bus.queries' => [ + 'query.bus' => [ 'middleware' => [ 'validation', ], ], - 'messenger.bus.events' => [ + 'event.bus' => [ 'default_middleware' => 'allow_no_handlers', 'middleware' => [ 'validation', @@ -98,62 +98,12 @@ an **event bus**. The event bus could have zero or more subscribers. This will create three new services: -* ``messenger.bus.commands``: autowireable with the :class:`Symfony\\Component\\Messenger\\MessageBusInterface` +* ``command.bus``: autowireable with the :class:`Symfony\\Component\\Messenger\\MessageBusInterface` type-hint (because this is the ``default_bus``); -* ``messenger.bus.queries``: autowireable with the ``MessageBusInterface $messengerBusQueries``; +* ``query.bus``: autowireable with ``MessageBusInterface $queryBus``; -* ``messenger.bus.events``: autowireable with the ``MessageBusInterface $messengerBusEvents``. - -Type-hints and Auto-wiring --------------------------- - -Auto-wiring is a great feature that allows you to reduce the amount of configuration -required for your service container to be created. By using ``MessageBusInterface`` -as argument type-hint in your services, the default configured bus will be injected -(i.e ``messenger.bus.commands`` in above examples). - -When working with multiple buses, you can use the ``DependencyInjection`` component's -binding capabilities to clarify which bus will be injected based on the argument's name: - -.. configuration-block:: - - .. code-block:: yaml - - # config/services.yaml - services: - _defaults: - # ... - - bind: - $commandBus: '@messenger.bus.commands' - $queryBus: '@messenger.bus.queries' - $eventBus: '@messenger.bus.events' - - .. code-block:: xml - - - - - - - - - - - - - - - .. code-block:: php - - // config/services.php - $container->bind('$commandBus', 'messenger.bus.commands'); - $container->bind('$queryBus', 'messenger.bus.queries'); - $container->bind('$eventBus', 'messenger.bus.events'); +* ``event.bus``: autowireable with ``MessageBusInterface $eventBus``. Restrict Handlers per Bus -------------------------