Merge pull request #58 from skipperbent/development

[BUGFIX] Custom parameters regex is now working again.
This commit is contained in:
Simon Sessingø
2015-12-24 00:48:27 +01:00
2 changed files with 9 additions and 8 deletions
+8 -7
View File
@@ -27,7 +27,7 @@ abstract class RouterEntry {
public function __construct() {
$this->settings = array();
$this->settings['requestMethods'] = array();
$this->settings['parametersRegex'] = array();
$this->settings['where'] = array();
$this->settings['parameters'] = array();
}
@@ -155,7 +155,7 @@ abstract class RouterEntry {
* @return self
*/
public function where(array $options) {
$this->parametersRegex = array_merge($this->parametersRegex, $options);
$this->where = array_merge($this->where, $options);
return $this;
}
@@ -249,11 +249,6 @@ abstract class RouterEntry {
$isParameter = false;
$parameter = '';
// Use custom parameter regex if it exists
if(is_array($this->parametersRegex) && isset($this->parametersRegex[$parameter])) {
$parameterRegex = $this->parametersRegex[$parameter];
}
$routeLength = strlen($route);
for($i = 0; $i < $routeLength; $i++) {
@@ -275,6 +270,12 @@ abstract class RouterEntry {
} elseif($isParameter && $character === '}') {
$required = true;
// Check for optional parameter
// Use custom parameter regex if it exists
if(is_array($this->where) && isset($this->where[$parameter])) {
$parameterRegex = $this->where[$parameter];
}
if($lastCharacter === '?') {
$parameter = substr($parameter, 0, strlen($parameter)-1);
$regex .= '(?:(?:\/{0,1}(?P<'.$parameter.'>[^\/]*)))\\/{0,1}';
+1 -1
View File
@@ -88,7 +88,7 @@ class RouterResource extends RouterEntry {
}
// Show
if($action && $this->postMethod === self::REQUEST_TYPE_GET) {
if(isset($parameters['id']) && $this->postMethod === self::REQUEST_TYPE_GET) {
return $this->call('show', $parameters);
}