From 52872eb6f714050bdf77c07770194e8e593c7cdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=9E=97?= Date: Fri, 21 Apr 2023 17:40:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/RouterCollector.php | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/RouterCollector.php b/src/RouterCollector.php index 781240a..c8d6ad6 100644 --- a/src/RouterCollector.php +++ b/src/RouterCollector.php @@ -166,21 +166,36 @@ class RouterCollector implements \ArrayAccess, \IteratorAggregate public function registerMiddleware(string $class, string $method): void { $middlewares = Kiri::service()->get('request')->middlewares; - $middlewares = [...$middlewares, ...array_column($this->groupTack, 'middleware')]; if (count($middlewares) > 0) { - $manager = Kiri::getDi()->get(Middleware::class); - foreach ($middlewares as $middleware) { - if (is_string($middleware)) { - $middleware = [$middleware]; - } - foreach ($middleware as $value) { - $manager->set($class, $method, $value); - } - } + $this->appendMiddleware($middlewares, $class, $method); + } + $middlewares = array_column($this->groupTack, 'middleware'); + if (count($middlewares) > 0) { + $this->appendMiddleware($middlewares, $class, $method); } } + /** + * @param array $middlewares + * @param $class + * @param $method + * @return void + * @throws + */ + private function appendMiddleware(array $middlewares, $class, $method): void + { + $manager = Kiri::getDi()->get(Middleware::class); + foreach ($middlewares as $middleware) { + if (is_string($middleware)) { + $middleware = [$middleware]; + } + foreach ($middleware as $value) { + $manager->set($class, $method, $value); + } + } + } + /** * @param string $path * @param string $method