From 44f8bc6535fb2547c323d947a515122e9dd3fbe7 Mon Sep 17 00:00:00 2001 From: whwyy Date: Tue, 30 Dec 2025 21:07:31 +0800 Subject: [PATCH] eee --- src/Base/AbstractHandler.php | 20 +++++++++++++++----- src/Router.php | 13 +++++-------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/Base/AbstractHandler.php b/src/Base/AbstractHandler.php index 2c35e09..e37a4ce 100644 --- a/src/Base/AbstractHandler.php +++ b/src/Base/AbstractHandler.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace Kiri\Router\Base; use Kiri\Router\Handler; +use Kiri\Router\Validator\ValidatorMiddleware; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\MiddlewareInterface; @@ -15,6 +16,9 @@ abstract class AbstractHandler public int $offset = 0; + private ?ValidatorMiddleware $middleware = null; + + /** * @param array $middlewares * @param Handler $handler @@ -34,7 +38,6 @@ abstract class AbstractHandler */ public function execute(ServerRequestInterface $request): ResponseInterface { - var_dump($this->middlewares); if (!isset($this->middlewares[$this->offset])) { return $this->handler->handle($request); } @@ -42,11 +45,18 @@ abstract class AbstractHandler $middleware = $this->middlewares[$this->offset]; $this->offset += 1; -// if (!($middleware instanceof MiddlewareInterface)) { -// $middleware = \Kiri::getDi()->get($middleware); -// } - return $middleware->process($request, $this); } + + + /** + * @param ValidatorMiddleware $middleware + * @return void + */ + public function withValidatorMiddleware(ValidatorMiddleware $middleware): void + { +// $this->middleware = $middleware; + } + } diff --git a/src/Router.php b/src/Router.php index 92d2883..b2080ec 100644 --- a/src/Router.php +++ b/src/Router.php @@ -211,19 +211,16 @@ class Router foreach ($router->getMethods() as $name => $method) { $middlewares = $method->getMiddlewares(); - foreach ($middlewares as $key=>$middleware) { + foreach ($middlewares as $key => $middleware) { $middlewares[$key] = di($middleware); } - var_dump(sprintf('%s::%s(%s)', $method->getClass(), $method->getMethod(), json_encode($middlewares, JSON_UNESCAPED_UNICODE))); - - $validator = MiddlewareManager::getValidator($method->getClass(), $method->getMethod()); + $requestHandler = new HttpRequestHandler($middlewares, $method); + $validator = MiddlewareManager::getValidator($method->getClass(), $method->getMethod()); if (!is_null($validator)) { - $middlewares[] = new ValidatorMiddleware(di(ResponseInterface::class), $method->getClass(), $method->getMethod()); + $requestHandler->withValidatorMiddleware(new ValidatorMiddleware(di(ResponseInterface::class), $method->getClass(), $method->getMethod())); } - - - $router->setHttpHandler($name, new HttpRequestHandler($middlewares, $method)); + $router->setHttpHandler($name, $requestHandler); } }