summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Router.php8
-rw-r--r--tests/Unit/RouterTest.php8
2 files changed, 16 insertions, 0 deletions
diff --git a/src/Router.php b/src/Router.php
index 34d2695..4463150 100644
--- a/src/Router.php
+++ b/src/Router.php
@@ -174,4 +174,12 @@ class Router
{
return $this->namedRoutes[$name] ?? null;
}
+
+ /** @param array<string, mixed> $params */
+ public function route(string $name, array $params = []): ?string
+ {
+ $route = $this->getNamedRoute($name);
+ $params = $this->strategy->parseParameters($params);
+ return $route?->getPath($params);
+ }
}
diff --git a/tests/Unit/RouterTest.php b/tests/Unit/RouterTest.php
index b3013bb..5583c80 100644
--- a/tests/Unit/RouterTest.php
+++ b/tests/Unit/RouterTest.php
@@ -270,3 +270,11 @@ it('overrides existing named routes', function () {
->not->toBe($route1)
->toBe($route2);
});
+
+it('generates route from name', function() {
+ $router = new Router();
+ $router->get('/test', fn() => null)->name('test');
+
+ expect($router->route('test'))->toBe('/test');
+});
+