Compare commits

...

10 Commits

Author SHA1 Message Date
Simon Sessingø 5a398f03a6 Merge pull request #37 from skipperbent/development
Fixed route not matching when two params added next to each other.
2015-11-21 21:02:04 +01:00
Simon Sessingø 866832faa6 Merge branch 'development' of https://github.com/skipperbent/simple-php-router into development 2015-11-21 21:01:14 +01:00
Simon Sessingø c4bff83ac4 [BUGFIX] Fixed route not matching when two params added next to each
other.
2015-11-21 21:00:15 +01:00
Simon Sessingø 5ca8294015 Merge pull request #36 from skipperbent/master
Latest master
2015-11-21 20:49:09 +01:00
Simon Sessingø 6e98f8e20b Merge pull request #35 from skipperbent/development
[TASK] Added support for letters (before it was only numbers) in default parameter regex.
2015-11-21 20:48:36 +01:00
Simon Sessingø 3533ff8906 [TASK] Added support for letters (before it was only numbers) in default parameter regex. 2015-11-21 20:47:46 +01:00
Simon Sessingø f2fd5261c1 Merge pull request #34 from skipperbent/development
[BUGFIX] Fixed parameters on custom regex match.
2015-11-21 20:34:45 +01:00
Simon Sessingø 02de9572fa [BUGFIX] Fixed parameters on custom regex match. 2015-11-21 20:31:44 +01:00
Simon Sessingø e2a618fadd Merge pull request #33 from skipperbent/development
[BUGFIX] Fixed optinal parameters not availible when getting route.
2015-11-21 19:44:19 +01:00
Simon Sessingø e5700477e0 [BUGFIX] Fixed optinal parameters not availible when getting route.
[BUGFIX] Fixed optinal parameters not availible in url.
2015-11-21 19:43:23 +01:00
+6 -6
View File
@@ -6,7 +6,7 @@ use Pecee\Http\Request;
class RouterRoute extends RouterEntry {
const PARAMETERS_REGEX_MATCH = '{([A-Za-z\-\_]*?)}';
const PARAMETERS_REGEX_MATCH = '{([A-Za-z\-\_]*?\?{0,1})}';
protected $url;
@@ -26,8 +26,8 @@ class RouterRoute extends RouterEntry {
// Match on custom defined regular expression
if($this->regexMatch) {
$parameters = array();
if(preg_match('/'.$this->regexMatch.'/is', $url, $parameters)) {
$this->parameters = $parameters[0];
if(preg_match('/('.$this->regexMatch.')/is', $url, $parameters)) {
$this->parameters = (!is_array($parameters[0]) ? array($parameters[0]) : $parameters[0]);
return $this;
}
}
@@ -63,16 +63,16 @@ class RouterRoute extends RouterEntry {
// Check for optional parameter
if($lastCharacter === '?') {
$parameter = substr($parameter, 0, strlen($parameter)-1);
$regex .= '(?:(?:\/(?P<'.$parameter.'>[0-9]*?)){0,1}\\/)';
$regex .= '(?:(?:\/{0,1}(?P<'.$parameter.'>[a-z0-9]*?)){0,1}\\/)';
} else {
// Use custom parameter regex if it exists
$parameterRegex = '[0-9]*?';
$parameterRegex = '[a-z0-9]*?';
if(is_array($this->parametersRegex) && isset($this->parametersRegex[$parameter])) {
$parameterRegex = $this->parametersRegex[$parameter];
}
$regex .= '(?:\\/(?P<' . $parameter . '>'. $parameterRegex .')\\/)';
$regex .= '(?:\\/{0,1}(?P<' . $parameter . '>'. $parameterRegex .')\\/)';
}
$parameterNames[] = $parameter;
$parameter = '';