adding support for filter patterns.
Signed-off-by: Taylor Otwell <taylorotwell@gmail.com>
This commit is contained in:
parent
9954482194
commit
01ddff5cdc
|
@ -13,6 +13,13 @@ class Filter {
|
|||
*/
|
||||
public static $filters = array();
|
||||
|
||||
/**
|
||||
* The route filters that are based on pattern.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $patterns = array();
|
||||
|
||||
/**
|
||||
* All of the registered filter aliases.
|
||||
*
|
||||
|
@ -39,7 +46,17 @@ public static function register($name, Closure $callback)
|
|||
{
|
||||
if (isset(static::$aliases[$name])) $name = static::$aliases[$name];
|
||||
|
||||
static::$filters[$name] = $callback;
|
||||
if (starts_with($name, 'pattern: '))
|
||||
{
|
||||
foreach (explode(', ', substr($name, 9)) as $pattern)
|
||||
{
|
||||
static::$patterns[$pattern] = $callback;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
static::$filters[$name] = $callback;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -116,10 +116,13 @@ protected static function format($uri)
|
|||
* Determine if the current URI matches a given pattern.
|
||||
*
|
||||
* @param string $pattern
|
||||
* @param string $uri
|
||||
* @return bool
|
||||
*/
|
||||
public static function is($pattern)
|
||||
public static function is($pattern, $uri = null)
|
||||
{
|
||||
$uri = $uri ?: static::current();
|
||||
|
||||
// Asterisks are translated into zero-or-more regular expression wildcards
|
||||
// to make it convenient to check if the URI starts with a given pattern
|
||||
// such as "library/*". This is only done when not root.
|
||||
|
@ -132,7 +135,7 @@ public static function is($pattern)
|
|||
$pattern = '^/$';
|
||||
}
|
||||
|
||||
return preg_match('#'.$pattern.'#', static::current());
|
||||
return preg_match('#'.$pattern.'#', $uri);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue