mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-23 19:49:15 +00:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5a398f03a6 | |||
| 866832faa6 | |||
| c4bff83ac4 | |||
| 5ca8294015 | |||
| 6e98f8e20b | |||
| 3533ff8906 | |||
| f2fd5261c1 | |||
| 02de9572fa | |||
| e2a618fadd | |||
| e5700477e0 |
@@ -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 = '';
|
||||
|
||||
Reference in New Issue
Block a user