extracted the route wildcard translation to a separate method.
This commit is contained in:
parent
8277694693
commit
d0ba4719d8
|
@ -41,9 +41,7 @@ public static function route($method, $uri)
|
|||
{
|
||||
foreach (explode(', ', $keys) as $key)
|
||||
{
|
||||
$key = str_replace(':num', '[0-9]+', str_replace(':any', '[a-zA-Z0-9\-_]+', $key));
|
||||
|
||||
if (preg_match('#^'.$key.'$#', $uri))
|
||||
if (preg_match('#^'.$key = static::translate_wildcards($key).'$#', $uri))
|
||||
{
|
||||
return Request::$route = new Route($keys, $callback, static::parameters($uri, $key));
|
||||
}
|
||||
|
@ -85,6 +83,17 @@ private static function load_from_directory($uri)
|
|||
return (file_exists($path = APP_PATH.'routes/'.$segments[0].EXT)) ? array_merge(require $path, $home) : $home;
|
||||
}
|
||||
|
||||
/**
|
||||
* Translate route URI wildcards to regular expressions.
|
||||
*
|
||||
* @param string $key
|
||||
* @return string
|
||||
*/
|
||||
private static function translate_wildcards($key)
|
||||
{
|
||||
return str_replace(':num', '[0-9]+', str_replace(':any', '[a-zA-Z0-9\-_]+', $key));
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract the parameters from a URI based on a route URI.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue