Compare commits

..

5 Commits

Author SHA1 Message Date
Simon Sessingø 4d45e34541 Merge pull request #39 from skipperbent/development
[...] Stuff from previous commit
2015-11-22 19:47:42 +01:00
Simon Sessingø a9e7a33ff8 [...] Stuff from previous commit 2015-11-22 19:47:11 +01:00
Simon Sessingø 6805a79d50 Merge pull request #38 from skipperbent/development
Development
2015-11-22 19:45:51 +01:00
Simon Sessingø 5393aa3200 [TASK] RouterRoute now throws exception is required parameter is not
filled.
2015-11-22 19:44:09 +01:00
Simon Sessingø f2ffd83376 [TASK] If parameter is empty set RouterRoute not set the value to null. 2015-11-22 19:39:11 +01:00
+10 -2
View File
@@ -60,10 +60,12 @@ class RouterRoute extends RouterEntry {
$isParameter = true;
} elseif($isParameter && $character === '}') {
$required = false;
// Check for optional parameter
if($lastCharacter === '?') {
$parameter = substr($parameter, 0, strlen($parameter)-1);
$regex .= '(?:(?:\/{0,1}(?P<'.$parameter.'>[a-z0-9]*?)){0,1}\\/)';
$required = true;
} else {
// Use custom parameter regex if it exists
$parameterRegex = '[a-z0-9]*?';
@@ -74,7 +76,7 @@ class RouterRoute extends RouterEntry {
$regex .= '(?:\\/{0,1}(?P<' . $parameter . '>'. $parameterRegex .')\\/)';
}
$parameterNames[] = $parameter;
$parameterNames[] = array('name' => $parameter, 'required' => $required);
$parameter = '';
$isParameter = false;
@@ -97,7 +99,13 @@ class RouterRoute extends RouterEntry {
if(count($parameterNames)) {
foreach($parameterNames as $name) {
$parameters[$name] = isset($parameterValues[$name]) ? $parameterValues[$name] : null;
$parameterValue = (isset($parameterValues[$name['name']]) && !empty($parameterValues[$name['name']])) ? $parameterValues[$name['name']] : null;
if($name['required'] && $parameterValue === null) {
throw new RouterException('Missing required parameter ' . $name['name'], 404);
}
$parameters[$name['name']] = $parameterValue;
}
}