Skip to content

Commit ef84fa1

Browse files
committed
minor #11745 [Messenger] Fixing & improving autowireable names section (weaverryan)
This PR was merged into the 4.3 branch. Discussion ---------- [Messenger] Fixing & improving autowireable names section tl;dr In 4.3, you get automatic autowireable "names" for each message bus, so the second section is not needed at all. And by tweaking the bus names, we get better autowireable names than before. Commits ------- 49c0a0a renaming services to get better autowireable names
2 parents aa96296 + 49c0a0a commit ef84fa1

File tree

1 file changed

+15
-65
lines changed

1 file changed

+15
-65
lines changed

messenger/multiple_buses.rst

Lines changed: 15 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,16 @@ an **event bus**. The event bus could have zero or more subscribers.
2424
framework:
2525
messenger:
2626
# The bus that is going to be injected when injecting MessageBusInterface
27-
default_bus: messenger.bus.commands
27+
default_bus: command.bus
2828
buses:
29-
messenger.bus.commands:
29+
command.bus:
3030
middleware:
3131
- validation
3232
- doctrine_transaction
33-
messenger.bus.queries:
33+
query.bus:
3434
middleware:
3535
- validation
36-
messenger.bus.events:
36+
event.bus:
3737
default_middleware: allow_no_handlers
3838
middleware:
3939
- validation
@@ -52,15 +52,15 @@ an **event bus**. The event bus could have zero or more subscribers.
5252
5353
<framework:config>
5454
<!-- The bus that is going to be injected when injecting MessageBusInterface -->
55-
<framework:messenger default-bus="messenger.bus.commands">
56-
<framework:bus name="messenger.bus.commands">
55+
<framework:messenger default-bus="command.bus">
56+
<framework:bus name="command.bus">
5757
<framework:middleware id="validation"/>
5858
<framework:middleware id="doctrine_transaction"/>
5959
<framework:bus>
60-
<framework:bus name="messenger.bus.queries">
60+
<framework:bus name="query.bus">
6161
<framework:middleware id="validation"/>
6262
<framework:bus>
63-
<framework:bus name="messenger.bus.events" default-middleware="allow_no_handlers">
63+
<framework:bus name="event.bus" default-middleware="allow_no_handlers">
6464
<framework:middleware id="validation"/>
6565
<framework:bus>
6666
</framework:messenger>
@@ -73,20 +73,20 @@ an **event bus**. The event bus could have zero or more subscribers.
7373
$container->loadFromExtension('framework', [
7474
'messenger' => [
7575
// The bus that is going to be injected when injecting MessageBusInterface
76-
'default_bus' => 'messenger.bus.commands',
76+
'default_bus' => 'command.bus',
7777
'buses' => [
78-
'messenger.bus.commands' => [
78+
'command.bus' => [
7979
'middleware' => [
8080
'validation',
8181
'doctrine_transaction',
8282
],
8383
],
84-
'messenger.bus.queries' => [
84+
'query.bus' => [
8585
'middleware' => [
8686
'validation',
8787
],
8888
],
89-
'messenger.bus.events' => [
89+
'event.bus' => [
9090
'default_middleware' => 'allow_no_handlers',
9191
'middleware' => [
9292
'validation',
@@ -98,62 +98,12 @@ an **event bus**. The event bus could have zero or more subscribers.
9898
9999
This will create three new services:
100100

101-
* ``messenger.bus.commands``: autowireable with the :class:`Symfony\\Component\\Messenger\\MessageBusInterface`
101+
* ``command.bus``: autowireable with the :class:`Symfony\\Component\\Messenger\\MessageBusInterface`
102102
type-hint (because this is the ``default_bus``);
103103

104-
* ``messenger.bus.queries``: autowireable with the ``MessageBusInterface $messengerBusQueries``;
104+
* ``query.bus``: autowireable with ``MessageBusInterface $queryBus``;
105105

106-
* ``messenger.bus.events``: autowireable with the ``MessageBusInterface $messengerBusEvents``.
107-
108-
Type-hints and Auto-wiring
109-
--------------------------
110-
111-
Auto-wiring is a great feature that allows you to reduce the amount of configuration
112-
required for your service container to be created. By using ``MessageBusInterface``
113-
as argument type-hint in your services, the default configured bus will be injected
114-
(i.e ``messenger.bus.commands`` in above examples).
115-
116-
When working with multiple buses, you can use the ``DependencyInjection`` component's
117-
binding capabilities to clarify which bus will be injected based on the argument's name:
118-
119-
.. configuration-block::
120-
121-
.. code-block:: yaml
122-
123-
# config/services.yaml
124-
services:
125-
_defaults:
126-
# ...
127-
128-
bind:
129-
$commandBus: '@messenger.bus.commands'
130-
$queryBus: '@messenger.bus.queries'
131-
$eventBus: '@messenger.bus.events'
132-
133-
.. code-block:: xml
134-
135-
<!-- config/services.xml -->
136-
<?xml version="1.0" encoding="UTF-8" ?>
137-
<container xmlns="http://symfony.com/schema/dic/services"
138-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
139-
xsi:schemaLocation="http://symfony.com/schema/dic/services
140-
https://symfony.com/schema/dic/services/services-1.0.xsd">
141-
142-
<services>
143-
<defaults>
144-
<bind key="$commandBus" type="service" id="messenger.bus.commands"/>
145-
<bind key="$queryBus" type="service" id="messenger.bus.queries"/>
146-
<bind key="$eventBus" type="service" id="messenger.bus.events"/>
147-
</defaults>
148-
</services>
149-
</container>
150-
151-
.. code-block:: php
152-
153-
// config/services.php
154-
$container->bind('$commandBus', 'messenger.bus.commands');
155-
$container->bind('$queryBus', 'messenger.bus.queries');
156-
$container->bind('$eventBus', 'messenger.bus.events');
106+
* ``event.bus``: autowireable with ``MessageBusInterface $eventBus``.
157107

158108
Restrict Handlers per Bus
159109
-------------------------

0 commit comments

Comments
 (0)