unify url handling for routes and redirect #5

Merged
bence merged 1 commits from feature/unify-url-handling into master 2023-04-16 20:45:24 +02:00
3 changed files with 6 additions and 5 deletions

View File

@ -19,7 +19,7 @@ class Redirect implements IRedirect
if (preg_match('/^http(s)?/', $this->target) === 1) {
$link = $this->target;
} else {
$link = \Container::$request->getBase() . '/' . $this->target;
$link = \Container::$request->getBase() . $this->target;
}
return $link;

View File

@ -53,7 +53,7 @@ class Route
$query = count($queryParams) > 0 ? '?' . http_build_query($queryParams) : '';
return implode('/', $link) . $query;
return '/' . implode('/', $link) . $query;
}
public function testAgainst(array $path): ?array

View File

@ -41,9 +41,10 @@ class RouteCollection
return $this->routes[$id];
}
public function match(string $method, array $uri): ?array
public function match(string $method, string $uri): ?array
{
$groupNumber = count($uri);
$path = $uri === '/' ? [] : explode('/', ltrim($uri, '/'));
$groupNumber = count($path);
// response to HEAD request with the GET content
if ($method === 'head') {
@ -55,7 +56,7 @@ class RouteCollection
}
foreach ($this->searchTable[$method][$groupNumber] as $route) {
if (($parameters = $route->testAgainst($uri)) !== null) {
if (($parameters = $route->testAgainst($path)) !== null) {
return [$route, $parameters];
}
}