From 8c7bd0d2108566c369967501b07f8110d3737a39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20Debussch=C3=A8re?= Date: Fri, 29 Aug 2025 16:35:20 +0200 Subject: [PATCH] feat(helpers): new helpers to generate middlewares --- src/Function/middleware.php | 17 ++++++++++++ src/Function/path.php | 14 ++++++++++ .../CallableMiddlewareDecorator.php | 26 +++++++++++++++++++ src/Middleware/PathMiddlewareDecorator.php | 25 ++++++++++++++++++ 4 files changed, 82 insertions(+) create mode 100644 src/Function/middleware.php create mode 100644 src/Function/path.php create mode 100644 src/Middleware/CallableMiddlewareDecorator.php create mode 100644 src/Middleware/PathMiddlewareDecorator.php diff --git a/src/Function/middleware.php b/src/Function/middleware.php new file mode 100644 index 0000000..8aba761 --- /dev/null +++ b/src/Function/middleware.php @@ -0,0 +1,17 @@ +middleware = $middleware; + } + + public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface + { + return call_user_func($this->middleware, $request, $handler); + } +} diff --git a/src/Middleware/PathMiddlewareDecorator.php b/src/Middleware/PathMiddlewareDecorator.php new file mode 100644 index 0000000..795e5f4 --- /dev/null +++ b/src/Middleware/PathMiddlewareDecorator.php @@ -0,0 +1,25 @@ +getUri()->getPath() ?: '/'; + if (str_starts_with($path, $this->path)) { + return $this->middleware->process($request, $handler); + } + + return $handler->handle($request); + } +}