private static function checkRouteAlias($request, $url, $depr)
{
$array = explode('|', $url);
$alias = array_shift($array);
$item = self::$rules['alias'][$alias];
if (is_array($item)) {
list($rule, $option) = $item;
$action = $array[0];
if (isset($option['allow']) && !in_array($action, explode(',', $option['allow']))) {
// 允许操作
return false;
} elseif (isset($option['except']) && in_array($action, explode(',', $option['except']))) {
// 排除操作
return false;
}
if (isset($option['method'][$action])) {
$option['method'] = $option['method'][$action];
}
} else {
$rule = $item;
}
$bind = implode('|', $array);
// 参数有效性检查
if (isset($option) && !self::checkOption($option, $request)) {
// 路由不匹配
return false;
} elseif (0 === strpos($rule, '\\')) {
// 路由到类
return self::bindToClass($bind, substr($rule, 1), $depr);
} elseif (0 === strpos($rule, '@')) {
// 路由到控制器类
return self::bindToController($bind, substr($rule, 1), $depr);
} else {
// 路由到模块/控制器
return self::bindToModule($bind, $rule, $depr);
}
}