diff options
| -rw-r--r-- | src/Router.php | 8 | ||||
| -rw-r--r-- | tests/Unit/RouterTest.php | 8 |
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'); +}); + |
