mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-07-11 20:12:14 +00:00
[BUGFIX] Minor bugfixes and optimisations
- Fixed getRoute sometimes not passing current loaded route. - Fixed optional parameters in some occasions not working properly.
This commit is contained in:
@@ -327,6 +327,10 @@ class RouterBase {
|
|||||||
return $url;
|
return $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($controller === null && $this->loadedRoute !== null) {
|
||||||
|
return $this->processUrl($this->loadedRoute, $this->loadedRoute->getMethod(), $parameters, $getParams);
|
||||||
|
}
|
||||||
|
|
||||||
$c = '';
|
$c = '';
|
||||||
$method = null;
|
$method = null;
|
||||||
|
|
||||||
|
|||||||
@@ -278,7 +278,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 .')\\/';
|
||||||
@@ -314,6 +314,10 @@ abstract class RouterEntry {
|
|||||||
throw new RouterException('Missing required parameter ' . $name['name'], 404);
|
throw new RouterException('Missing required parameter ' . $name['name'], 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!$name['required'] && $parameterValue === null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$parameters[$name['name']] = $parameterValue;
|
$parameters[$name['name']] = $parameterValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Pecee\SimpleRouter;
|
namespace Pecee\SimpleRouter;
|
||||||
|
|
||||||
|
use Pecee\ArrayUtil;
|
||||||
use Pecee\Http\Request;
|
use Pecee\Http\Request;
|
||||||
|
|
||||||
class RouterRoute extends RouterEntry {
|
class RouterRoute extends RouterEntry {
|
||||||
@@ -40,11 +41,11 @@ class RouterRoute extends RouterEntry {
|
|||||||
|
|
||||||
if($parameters !== null) {
|
if($parameters !== null) {
|
||||||
|
|
||||||
if(is_array($this->parameters)) {
|
//if(is_array($this->parameters)) {
|
||||||
$this->parameters = array_merge($this->parameters, $parameters);
|
// $this->parameters = array_merge($this->parameters, $parameters);
|
||||||
} else {
|
//} else {
|
||||||
$this->parameters = $parameters;
|
$this->parameters = $parameters;
|
||||||
}
|
//}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -74,7 +75,7 @@ class RouterRoute extends RouterEntry {
|
|||||||
if(count($parameters)) {
|
if(count($parameters)) {
|
||||||
$tmp = array();
|
$tmp = array();
|
||||||
foreach($parameters as $param) {
|
foreach($parameters as $param) {
|
||||||
$tmp[$param] = '';
|
$tmp[$param] = null;
|
||||||
}
|
}
|
||||||
$this->parameters = $tmp;
|
$this->parameters = $tmp;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user