Skip to content

Commit 428e2e4

Browse files
committed
minor #17853 [Messenger] Mention passing arguments along middleware’s id (Mathieu, MatTheCat)
This PR was merged into the 5.4 branch. Discussion ---------- [Messenger] Mention passing arguments along middleware’s id While investigating symfony/symfony#49160 I had to read the code to know that you can pass arguments along middleware’s id, which was apparently the right way to solve the issue. Commits ------- c7e0710 Update messenger.rst 23d2d41 [Messenger] Mention passing arguments to abstract definition
2 parents 80a2510 + c7e0710 commit 428e2e4

File tree

1 file changed

+24
-13
lines changed

1 file changed

+24
-13
lines changed

messenger.rst

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2343,7 +2343,10 @@ a message is received via the worker (for messages that were sent to a transport
23432343
to be handled asynchronously). Keep this in mind if you create your own middleware.
23442344

23452345
You can add your own middleware to this list, or completely disable the default
2346-
middleware and *only* include your own:
2346+
middleware and *only* include your own.
2347+
2348+
If a middleware service is abstract, you can configure its constructor's arguments
2349+
and a different instance will be created per bus.
23472350

23482351
.. configuration-block::
23492352

@@ -2357,9 +2360,11 @@ middleware and *only* include your own:
23572360
# disable the default middleware
23582361
default_middleware: false
23592362
2360-
# and/or add your own
23612363
middleware:
2362-
# service ids that implement Symfony\Component\Messenger\Middleware\MiddlewareInterface
2364+
# use and configure parts of the default middleware you want
2365+
- 'add_bus_name_stamp_middleware': ['messenger.bus.default']
2366+
2367+
# add your own services that implement Symfony\Component\Messenger\Middleware\MiddlewareInterface
23632368
- 'App\Middleware\MyMiddleware'
23642369
- 'App\Middleware\AnotherMiddleware'
23652370
@@ -2379,11 +2384,17 @@ middleware and *only* include your own:
23792384
<framework:config>
23802385
<framework:messenger>
23812386
<!-- default-middleware: disable the default middleware -->
2382-
<framework:bus name="messenger.bus.default" default-middleware="false"/>
2387+
<framework:bus name="messenger.bus.default" default-middleware="false">
23832388
2384-
<!-- and/or add your own -->
2385-
<framework:middleware id="App\Middleware\MyMiddleware"/>
2386-
<framework:middleware id="App\Middleware\AnotherMiddleware"/>
2389+
<!-- use and configure parts of the default middleware you want -->
2390+
<framework:middleware id="add_bus_name_stamp_middleware">
2391+
<framework:argument>messenger.bus.default</framework:argument>
2392+
</framework:middleware>
2393+
2394+
<!-- add your own services that implement Symfony\Component\Messenger\Middleware\MiddlewareInterface -->
2395+
<framework:middleware id="App\Middleware\MyMiddleware"/>
2396+
<framework:middleware id="App\Middleware\AnotherMiddleware"/>
2397+
</framework:bus>
23872398
</framework:messenger>
23882399
</framework:config>
23892400
</container>
@@ -2397,16 +2408,16 @@ middleware and *only* include your own:
23972408
$messenger = $framework->messenger();
23982409
23992410
$bus = $messenger->bus('messenger.bus.default')
2400-
->defaultMiddleware(false);
2411+
->defaultMiddleware(false); // disable the default middleware
2412+
2413+
// use and configure parts of the default middleware you want
2414+
$bus->middleware()->id('add_bus_name_stamp_middleware')->arguments(['messenger.bus.default']);
2415+
2416+
// add your own services that implement Symfony\Component\Messenger\Middleware\MiddlewareInterface
24012417
$bus->middleware()->id('App\Middleware\MyMiddleware');
24022418
$bus->middleware()->id('App\Middleware\AnotherMiddleware');
24032419
};
24042420
2405-
.. note::
2406-
2407-
If a middleware service is abstract, a different instance of the service will
2408-
be created per bus.
2409-
24102421
.. _middleware-doctrine:
24112422

24122423
Middleware for Doctrine

0 commit comments

Comments
 (0)