diff options
| -rw-r--r-- | src/Concerns/HasMiddleware.php | 24 | ||||
| -rw-r--r-- | src/Router.php | 1 |
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; |
