summaryrefslogtreecommitdiff
path: root/src/Enums/PathSegmentType.php
diff options
context:
space:
mode:
authorSam Light <sam@lightscale.co.uk>2026-06-10 19:00:32 +0100
committerSam Light <sam@lightscale.co.uk>2026-06-10 19:00:32 +0100
commitac836311005458a10dded324420be92f44976332 (patch)
treef456556ceac141aaaeeb0093c4438a44b99e7148 /src/Enums/PathSegmentType.php
parentc762531c8679dbb800346174913bfa21917ac0b5 (diff)
generating routes with parameters and tests
Diffstat (limited to 'src/Enums/PathSegmentType.php')
-rw-r--r--src/Enums/PathSegmentType.php15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/Enums/PathSegmentType.php b/src/Enums/PathSegmentType.php
index 43113e6..7cb1a51 100644
--- a/src/Enums/PathSegmentType.php
+++ b/src/Enums/PathSegmentType.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
namespace Lightscale\Router\Enums;
+use Lightscale\Router\PathSegmentTypeMatch;
+
enum PathSegmentType
{
case Raw;
@@ -17,4 +19,17 @@ enum PathSegmentType
default => null,
};
}
+
+ public static function matchRouteString(string $value): PathSegmentTypeMatch
+ {
+ $type = PathSegmentType::Parameter;
+ $regex = $type->routeMatchRegex();
+ if (preg_match($regex, $value, $matches) === 1) {
+ $value = $matches[1];
+ }
+ else {
+ $type = PathSegmentType::Raw;
+ }
+ return new PathSegmentTypeMatch( $type, $value);
+ }
}