@@ -2513,6 +2513,59 @@ of the process. For each, the event class is the event name:
2513
2513
2514
2514
The ``WorkerRateLimitedEvent `` was introduced in Symfony 6.2.
2515
2515
2516
+ Additional Handler Arguments
2517
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2518
+
2519
+ It's possible to have messenger pass additional data to the message handler
2520
+ using the :class: `Symfony\\ Component\\ Messenger\\ Stamp\\ HandlerArgumentsStamp `.
2521
+ Add this stamp to the envelope in a middleware and fill it with any additional
2522
+ data you want to have available in the handler::
2523
+
2524
+ // src/Messenger/AdditionalArgumentMiddleware.php
2525
+ namespace App\Messenger;
2526
+
2527
+ use Symfony\Component\Messenger\Envelope;
2528
+ use Symfony\Component\Messenger\Middleware\MiddlewareInterface;
2529
+ use Symfony\Component\Messenger\Middleware\StackInterface;
2530
+ use Symfony\Component\Messenger\Stamp\HandlerArgumentsStamp;
2531
+
2532
+ final class AdditionalArgumentMiddleware implements MiddlewareInterface
2533
+ {
2534
+ public function handle(Envelope $envelope, StackInterface $stack): Envelope
2535
+ {
2536
+ $envelope = $envelope->with(new HandlerArgumentsStamp([
2537
+ $this->resolveAdditionalArgument($envelope->getMessage()),
2538
+ ]));
2539
+
2540
+ return $stack->next()->handle($envelope, $stack);
2541
+ }
2542
+
2543
+ private function resolveAdditionalArgument(object $message): mixed
2544
+ {
2545
+ // ...
2546
+ }
2547
+ }
2548
+
2549
+ Then your handler will look like this::
2550
+
2551
+ // src/MessageHandler/SmsNotificationHandler.php
2552
+ namespace App\MessageHandler;
2553
+
2554
+ use App\Message\SmsNotification;
2555
+
2556
+ class SmsNotificationHandler
2557
+ {
2558
+ public function __invoke(SmsNotification $message, mixed $additionalArgument)
2559
+ {
2560
+ // ...
2561
+ }
2562
+ }
2563
+
2564
+ .. versionadded :: 6.2
2565
+
2566
+ The :class: `Symfony\\ Component\\ Messenger\\ Stamp\\ HandlerArgumentsStamp `
2567
+ was introduced in Symfony 6.2.
2568
+
2516
2569
Multiple Buses, Command & Event Buses
2517
2570
-------------------------------------
2518
2571
0 commit comments