summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Light <sam@lightscale.co.uk>2026-06-10 19:00:33 +0100
committerSam Light <sam@lightscale.co.uk>2026-06-10 19:00:33 +0100
commit2a021cc06de7c1535dd000c14587d93cf278d4d2 (patch)
treef954f10e9fbb9b9b8053f1b1e26a343b435134ad
parent12f31dd117754605c950e0b6866c84e9102bb8ac (diff)
middleware trait and added to router
-rw-r--r--src/Concerns/HasMiddleware.php24
-rw-r--r--src/Router.php1
2 files changed, 25 insertions, 0 deletions
diff --git a/src/Concerns/HasMiddleware.php b/src/Concerns/HasMiddleware.php
new file mode 100644
index 0000000..e0c6b1a
--- /dev/null
+++ b/src/Concerns/HasMiddleware.php
@@ -0,0 +1,24 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Lightscale\Router\Concerns;
+
+use Lightscale\Router\Contracts\Middleware;
+
+trait HasMiddleware
+{
+ /** @var Middleware[] */
+ private array $middleware = [];
+
+ /** @param Middleware[]|Middleware $middleware */
+ public function addMiddleware(array|Middleware $middleware): static
+ {
+ $middleware = is_array($middleware) ? $middleware : [$middleware];
+ $this->middleware = [
+ ...$this->middleware,
+ ...$middleware,
+ ];
+ return $this;
+ }
+}
diff --git a/src/Router.php b/src/Router.php
index 74c4e89..62ac52f 100644
--- a/src/Router.php
+++ b/src/Router.php
@@ -14,6 +14,7 @@ class Router
{
use Concerns\CreatesRoutes;
use Concerns\CreatesGroups;
+ use Concerns\HasMiddleware;
private PathSegment $root;
private Strategy $strategy;