From 968662ee16a1efc7cb7c176a42af91f36eecc9ca Mon Sep 17 00:00:00 2001 From: Sam Light Date: Wed, 10 Jun 2026 19:00:32 +0100 Subject: Create a group route and name it --- src/GroupDefinition.php | 6 +++++- src/RouteDefinition.php | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/GroupDefinition.php b/src/GroupDefinition.php index 41e359d..1ffddc7 100644 --- a/src/GroupDefinition.php +++ b/src/GroupDefinition.php @@ -18,7 +18,11 @@ class GroupDefinition public function make(HttpMethod $method, string $path, callable $handler): RouteDefinition { - + return $this->group->getRouter()->make( + $method, + $this->group->getFullPrefix() . '/'. ltrim($path, '/'), + $handler + )->inGroup($this->group); } private function getGroup(): Group diff --git a/src/RouteDefinition.php b/src/RouteDefinition.php index fb10380..1ca9201 100644 --- a/src/RouteDefinition.php +++ b/src/RouteDefinition.php @@ -9,11 +9,22 @@ class RouteDefinition public function __construct( private Router $router, private Route $route, + private ?Group $group = null, ) { } + public function inGroup(Group $group): static + { + $this->group = $group; + return $this; + } + public function name(string $value): static { + if (($groupName = $this->group?->getFullName()) !== null) { + $value = $groupName . $value; + } + $this->router->addNamedRoute($value, $this->route); return $this; -- cgit v1.2.3