[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:
Simon Sessingø
2016-01-14 16:37:36 +01:00
parent 1332ef7139
commit 14a030294e
3 changed files with 15 additions and 6 deletions
+4
View File
@@ -327,6 +327,10 @@ class RouterBase {
return $url;
}
if($controller === null && $this->loadedRoute !== null) {
return $this->processUrl($this->loadedRoute, $this->loadedRoute->getMethod(), $parameters, $getParams);
}
$c = '';
$method = null;
+5 -1
View File
@@ -278,7 +278,7 @@ abstract class RouterEntry {
if($lastCharacter === '?') {
$parameter = substr($parameter, 0, strlen($parameter)-1);
$regex .= '\\/?(?P<'.$parameter.'>[^\/]*)\\/?';
$regex .= '\\/(?:(?P<'.$parameter.'>[^\/]*)\\/?)';
$required = false;
} else {
$regex .= '\\/(?P<' . $parameter . '>'. $parameterRegex .')\\/';
@@ -314,6 +314,10 @@ abstract class RouterEntry {
throw new RouterException('Missing required parameter ' . $name['name'], 404);
}
if(!$name['required'] && $parameterValue === null) {
continue;
}
$parameters[$name['name']] = $parameterValue;
}
}
+6 -5
View File
@@ -2,6 +2,7 @@
namespace Pecee\SimpleRouter;
use Pecee\ArrayUtil;
use Pecee\Http\Request;
class RouterRoute extends RouterEntry {
@@ -40,11 +41,11 @@ class RouterRoute extends RouterEntry {
if($parameters !== null) {
if(is_array($this->parameters)) {
$this->parameters = array_merge($this->parameters, $parameters);
} else {
//if(is_array($this->parameters)) {
// $this->parameters = array_merge($this->parameters, $parameters);
//} else {
$this->parameters = $parameters;
}
//}
return true;
}
@@ -74,7 +75,7 @@ class RouterRoute extends RouterEntry {
if(count($parameters)) {
$tmp = array();
foreach($parameters as $param) {
$tmp[$param] = '';
$tmp[$param] = null;
}
$this->parameters = $tmp;
}