mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 15:12:48 +08:00
Url路由检测增加缓存
This commit is contained in:
@@ -143,55 +143,45 @@ class Route
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 注册任意请求的路由规则
|
// 注册任意请求的路由规则
|
||||||
public static function any($rule = '', $route = '', $option = [], $pattern = [])
|
public static function any($rule, $route = '', $option = [], $pattern = [])
|
||||||
{
|
{
|
||||||
if ('' == $rule) {
|
|
||||||
// 获取路由定义
|
|
||||||
return self::$rules['*'];
|
|
||||||
}
|
|
||||||
self::register($rule, $route, '*', $option, $pattern);
|
self::register($rule, $route, '*', $option, $pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 注册get请求的路由规则
|
// 注册get请求的路由规则
|
||||||
public static function get($rule = '', $route = '', $option = [], $pattern = [])
|
public static function get($rule, $route = '', $option = [], $pattern = [])
|
||||||
{
|
{
|
||||||
if ('' == $rule) {
|
|
||||||
// 获取路由定义
|
|
||||||
return self::$rules['GET'];
|
|
||||||
}
|
|
||||||
self::register($rule, $route, 'GET', $option, $pattern);
|
self::register($rule, $route, 'GET', $option, $pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 注册post请求的路由规则
|
// 注册post请求的路由规则
|
||||||
public static function post($rule = '', $route = '', $option = [], $pattern = [])
|
public static function post($rule, $route = '', $option = [], $pattern = [])
|
||||||
{
|
{
|
||||||
if ('' == $rule) {
|
|
||||||
// 获取路由定义
|
|
||||||
return self::$rules['POST'];
|
|
||||||
}
|
|
||||||
self::register($rule, $route, 'POST', $option, $pattern);
|
self::register($rule, $route, 'POST', $option, $pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 注册put请求的路由规则
|
// 注册put请求的路由规则
|
||||||
public static function put($rule = '', $route = '', $option = [], $pattern = [])
|
public static function put($rule, $route = '', $option = [], $pattern = [])
|
||||||
{
|
{
|
||||||
if ('' == $rule) {
|
|
||||||
// 获取路由定义
|
|
||||||
return self::$rules['PUT'];
|
|
||||||
}
|
|
||||||
self::register($rule, $route, 'PUT', $option, $pattern);
|
self::register($rule, $route, 'PUT', $option, $pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 注册delete请求的路由规则
|
// 注册delete请求的路由规则
|
||||||
public static function delete($rule = '', $route = '', $option = [], $pattern = [])
|
public static function delete($rule, $route = '', $option = [], $pattern = [])
|
||||||
{
|
{
|
||||||
if ('' == $rule) {
|
|
||||||
// 获取路由定义
|
|
||||||
return self::$rules['DELETE'];
|
|
||||||
}
|
|
||||||
self::register($rule, $route, 'DELETE', $option, $pattern);
|
self::register($rule, $route, 'DELETE', $option, $pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取路由定义
|
||||||
|
public static function getRules($method = '')
|
||||||
|
{
|
||||||
|
if ($method) {
|
||||||
|
return self::$rules[$method];
|
||||||
|
} else {
|
||||||
|
return self::$rules['*'] + self::$rules['GET'] + self::$rules['POST'] + self::$rules['PUT'] + self::$rules['DELETE'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 检测子域名部署
|
// 检测子域名部署
|
||||||
public static function checkDomain()
|
public static function checkDomain()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -46,7 +46,11 @@ class Url
|
|||||||
$url = $aliasUrl;
|
$url = $aliasUrl;
|
||||||
} else {
|
} else {
|
||||||
// 检测路由
|
// 检测路由
|
||||||
$match = self::checkRoute($url, $vars, $domain);
|
if (!$match = Cache::get(md5($url))) {
|
||||||
|
// 没有检测过 重新检测
|
||||||
|
$match = self::checkRoute($url, $vars);
|
||||||
|
Cache::set(md5($url), $match);
|
||||||
|
}
|
||||||
if (false === $match) {
|
if (false === $match) {
|
||||||
// 路由不存在 直接解析
|
// 路由不存在 直接解析
|
||||||
if (false !== strpos($url, '\\')) {
|
if (false !== strpos($url, '\\')) {
|
||||||
@@ -140,10 +144,10 @@ class Url
|
|||||||
return $url;
|
return $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static function checkRoute($url, $vars, $domain)
|
protected static function checkRoute($url, $vars)
|
||||||
{
|
{
|
||||||
// 获取路由定义
|
// 获取路由定义
|
||||||
$rules = Route::any();
|
$rules = Route::getRules();
|
||||||
// 全局变量规则
|
// 全局变量规则
|
||||||
$pattern = Route::pattern();
|
$pattern = Route::pattern();
|
||||||
foreach ($rules as $rule => $val) {
|
foreach ($rules as $rule => $val) {
|
||||||
|
|||||||
Reference in New Issue
Block a user