From edc15c4921e75eca21f3ee6595033c8cac0a9513 Mon Sep 17 00:00:00 2001 From: Sergei Predvoditelev Date: Sat, 2 May 2026 19:39:05 +0300 Subject: [PATCH] Simplify push middlewares stack --- src/Middleware/Push/MiddlewarePushStack.php | 5 ++++- src/Middleware/Push/PushMiddlewareDispatcher.php | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Middleware/Push/MiddlewarePushStack.php b/src/Middleware/Push/MiddlewarePushStack.php index e26f65a6..2d84351e 100644 --- a/src/Middleware/Push/MiddlewarePushStack.php +++ b/src/Middleware/Push/MiddlewarePushStack.php @@ -7,6 +7,9 @@ use Closure; use Yiisoft\Queue\Message\MessageInterface; +/** + * @internal + */ final class MiddlewarePushStack implements MessageHandlerPushInterface { /** @@ -40,7 +43,7 @@ private function build(): void { $handler = $this->finishHandler; - foreach ($this->middlewares as $middleware) { + foreach (array_reverse($this->middlewares) as $middleware) { $handler = $this->wrap($middleware, $handler); } diff --git a/src/Middleware/Push/PushMiddlewareDispatcher.php b/src/Middleware/Push/PushMiddlewareDispatcher.php index 97a11f01..6fa664d4 100644 --- a/src/Middleware/Push/PushMiddlewareDispatcher.php +++ b/src/Middleware/Push/PushMiddlewareDispatcher.php @@ -24,7 +24,7 @@ public function __construct( private readonly MiddlewareFactoryPushInterface $middlewareFactory, array|callable|string|MiddlewarePushInterface ...$middlewareDefinitions, ) { - $this->middlewareDefinitions = array_reverse($middlewareDefinitions); + $this->middlewareDefinitions = $middlewareDefinitions; } /** @@ -63,7 +63,7 @@ public function dispatch( public function withMiddlewares(array $middlewareDefinitions): self { $instance = clone $this; - $instance->middlewareDefinitions = array_reverse($middlewareDefinitions); + $instance->middlewareDefinitions = $middlewareDefinitions; // Fixes a memory leak. unset($instance->stack); @@ -90,7 +90,7 @@ public function withMiddlewares(array $middlewareDefinitions): self */ public function withMiddlewaresAdded(array $middlewareDefinitions): self { - return $this->withMiddlewares([...array_reverse($this->middlewareDefinitions), ...$middlewareDefinitions]); + return $this->withMiddlewares([...$this->middlewareDefinitions, ...$middlewareDefinitions]); } /**