diff --git a/src/Symfony/Component/Messenger/CHANGELOG.md b/src/Symfony/Component/Messenger/CHANGELOG.md index aabf140f6ce73..b181c707ea2bc 100644 --- a/src/Symfony/Component/Messenger/CHANGELOG.md +++ b/src/Symfony/Component/Messenger/CHANGELOG.md @@ -1,6 +1,11 @@ CHANGELOG ========= +6.4 +--- + + * Make `HandleMessageMiddleware::callHandler` protected + 6.3 --- diff --git a/src/Symfony/Component/Messenger/Middleware/HandleMessageMiddleware.php b/src/Symfony/Component/Messenger/Middleware/HandleMessageMiddleware.php index 6b84bd8cfd3ef..1eb20afaa23f2 100644 --- a/src/Symfony/Component/Messenger/Middleware/HandleMessageMiddleware.php +++ b/src/Symfony/Component/Messenger/Middleware/HandleMessageMiddleware.php @@ -79,7 +79,7 @@ public function handle(Envelope $envelope, StackInterface $stack): Envelope $ackStamp->ack($envelope, $e); }); - $result = $this->callHandler($handler, $message, $ack, $envelope->last(HandlerArgumentsStamp::class)); + $result = $this->callHandler($handlerDescriptor, $envelope, $ack); if (!\is_int($result) || 0 > $result) { throw new LogicException(sprintf('A handler implementing BatchHandlerInterface must return the size of the current batch as a positive integer, "%s" returned from "%s".', \is_int($result) ? $result : get_debug_type($result), get_debug_type($batchHandler))); @@ -93,7 +93,7 @@ public function handle(Envelope $envelope, StackInterface $stack): Envelope $result = $ack->getResult(); } } else { - $result = $this->callHandler($handler, $message, null, $envelope->last(HandlerArgumentsStamp::class)); + $result = $this->callHandler($handlerDescriptor, $envelope, null); } $handledStamp = HandledStamp::fromDescriptor($handlerDescriptor, $result); @@ -144,16 +144,17 @@ private function messageHasAlreadyBeenHandled(Envelope $envelope, HandlerDescrip return false; } - private function callHandler(callable $handler, object $message, ?Acknowledger $ack, ?HandlerArgumentsStamp $handlerArgumentsStamp): mixed + protected function callHandler(HandlerDescriptor $handlerDescriptor, Envelope $envelope, ?Acknowledger $ack): mixed { + $handler = $handlerDescriptor->getHandler(); + $message = $envelope->getMessage(); + $additionalArguments = $envelope->last(HandlerArgumentsStamp::class)?->getAdditionalArguments() ?? []; + $arguments = [$message]; if (null !== $ack) { $arguments[] = $ack; } - if (null !== $handlerArgumentsStamp) { - $arguments = [...$arguments, ...$handlerArgumentsStamp->getAdditionalArguments()]; - } - return $handler(...$arguments); + return $handler(...$arguments, ...$additionalArguments); } }