mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-17 16:57:53 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3e41ee28b6 | |||
| 8f3ce68a5e | |||
| 751b4444ae | |||
| d25351f4f9 |
@@ -95,11 +95,7 @@ abstract class Route implements IRoute
|
||||
|
||||
if (preg_match_all('/' . $regex . '/is', $route, $parameters)) {
|
||||
|
||||
$parameterNamesRegex = [];
|
||||
$parameterNames = $parameters[1];
|
||||
$parameterRequired = [];
|
||||
|
||||
$urlParts = preg_split('/\{[^}]+\}/is', rtrim($route, '/'));
|
||||
$urlParts = preg_split('/((\-?\/?)\{[^}]+\})/is', rtrim($route, '/'));
|
||||
|
||||
foreach ($urlParts as $key => $t) {
|
||||
|
||||
@@ -109,7 +105,7 @@ abstract class Route implements IRoute
|
||||
|
||||
$name = $parameters[1][$key];
|
||||
$regex = isset($this->where[$name]) ? $this->where[$name] : $parameterRegex;
|
||||
$regex = sprintf('(?P<%s>%s)', $name, $regex) . $parameters[2][$key];
|
||||
$regex = sprintf('\-?\/?(?P<%s>%s)', $name, $regex) . $parameters[2][$key];
|
||||
|
||||
}
|
||||
|
||||
@@ -128,7 +124,7 @@ abstract class Route implements IRoute
|
||||
|
||||
/* Only take matched parameters with name */
|
||||
foreach ($parameters[1] as $name) {
|
||||
$values[$name] = $matches[$name];
|
||||
$values[$name] = isset($matches[$name]) ? $matches[$name] : null;
|
||||
}
|
||||
|
||||
return $values;
|
||||
@@ -442,7 +438,7 @@ abstract class Route implements IRoute
|
||||
$this->originalParameters = $parameters;
|
||||
}
|
||||
|
||||
$this->parameters = $parameters;
|
||||
$this->parameters = array_merge($this->parameters, $parameters);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user