mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-17 08:47:52 +00:00
[OPTIMISATION] Parameters matching optimisations.
This commit is contained in:
@@ -238,7 +238,7 @@ abstract class RouterEntry {
|
|||||||
return new $name();
|
return new $name();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function parseParameters($route, $url, $parameterRegex = '[a-z0-9]*?') {
|
protected function parseParameters($route, $url, $parameterRegex = '[a-z0-9]+?') {
|
||||||
$parameterNames = array();
|
$parameterNames = array();
|
||||||
$regex = '';
|
$regex = '';
|
||||||
$lastCharacter = '';
|
$lastCharacter = '';
|
||||||
@@ -274,7 +274,7 @@ abstract class RouterEntry {
|
|||||||
|
|
||||||
if($lastCharacter === '?') {
|
if($lastCharacter === '?') {
|
||||||
$parameter = substr($parameter, 0, strlen($parameter)-1);
|
$parameter = substr($parameter, 0, strlen($parameter)-1);
|
||||||
$regex .= '(?:\\/?(?P<'.$parameter.'>[^\/]*)?\\/?)';
|
$regex .= '(?:\\/?(?P<'.$parameter.'>[^\/]+)?\\/?)';
|
||||||
$required = false;
|
$required = false;
|
||||||
} else {
|
} else {
|
||||||
$regex .= '\\/(?P<' . $parameter . '>'. $parameterRegex .')\\/';
|
$regex .= '\\/(?P<' . $parameter . '>'. $parameterRegex .')\\/';
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ class RouterResource extends RouterEntry {
|
|||||||
|
|
||||||
$route = rtrim($this->url, '/') . '/{id?}/{action?}';
|
$route = rtrim($this->url, '/') . '/{id?}/{action?}';
|
||||||
|
|
||||||
$parameters = $this->parseParameters($route, $url, '[0-9]*?');
|
$parameters = $this->parseParameters($route, $url, '[0-9]+?');
|
||||||
|
|
||||||
if($parameters !== null) {
|
if($parameters !== null) {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user