diff options
| author | Sam Light <sam@lightscale.co.uk> | 2026-06-10 19:00:33 +0100 |
|---|---|---|
| committer | Sam Light <sam@lightscale.co.uk> | 2026-06-10 19:00:33 +0100 |
| commit | eb9aa22170ce921d2816db539dd865986f0ba6bc (patch) | |
| tree | 89495041a4da27e7b4536b058a9a6dc041fdf843 /src/Group.php | |
| parent | fe39ea0aa5a6993ad5edaa6f0f338763ed610ec9 (diff) | |
testing middleware dispatch
Diffstat (limited to 'src/Group.php')
| -rw-r--r-- | src/Group.php | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/Group.php b/src/Group.php index 9faae2c..7d9db95 100644 --- a/src/Group.php +++ b/src/Group.php @@ -9,12 +9,14 @@ use Lightscale\Router\Contracts\Middleware; class Group { use Concerns\HasAncestors; - use Concerns\HasMiddleware; + use Concerns\HasMiddleware { + Concerns\HasMiddleware::getMiddleware as protected traitGetMiddleware; + } /** @param Middleware[] $middleware */ public function __construct( private Router $router, - private ?Group $parent, + private ?self $parent, private ?string $prefix = null, private ?string $name = null, array $middleware = [], @@ -86,6 +88,17 @@ class Group return 0 === count($names) ? null : implode('', $names); } + /** @return Middleware[] */ + public function getMiddleware(): array + { + $r = []; + foreach ($this->getAncestorsAndSelf() as $g) { + $r = [...$r, ...$g->traitGetMiddleware()]; + } + + return $r; + } + /** @param callable(GroupDefinition): void $cb */ public function group(callable $cb): void { |
