From d392d310e354337bc2c32315242071494cbf8fd1 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Fri, 28 Oct 2016 15:07:45 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Route.php | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/library/think/Route.php b/library/think/Route.php index c6e52267..395b07cc 100644 --- a/library/think/Route.php +++ b/library/think/Route.php @@ -234,10 +234,9 @@ class Route * @param string $type 请求类型 * @param array $option 路由参数 * @param array $pattern 变量规则 - * @param mixed $role 角色信息 * @return void */ - public static function rule($rule, $route = '', $type = '*', $option = [], $pattern = [], $role = null) + public static function rule($rule, $route = '', $type = '*', $option = [], $pattern = []) { $group = self::getGroup('name'); if (!is_null($group)) { @@ -261,16 +260,12 @@ class Route $route = $val[0]; $option1 = array_merge($option, $val[1]); $pattern1 = array_merge($pattern, isset($val[2]) ? $val[2] : []); - if (isset($val[3])) { - self::setRole($key, $val[3]); - } } else { $route = $val; } self::setRule($key, $route, $type, isset($option1) ? $option1 : $option, isset($pattern1) ? $pattern1 : $pattern, $group); } } else { - self::setRole($rule, $role); self::setRule($rule, $route, $type, $option, $pattern, $group); } @@ -351,15 +346,12 @@ class Route /** * 设置当前执行的参数信息 * @access public - * @param string $name 分组名或者路由规则 - * @param mixed $role 角色信息 + * @param array $options 参数信息 * @return mixed */ - protected static function setRole($name, $role) + protected static function setOption($options = []) { - if ($role) { - self::$role[$name] = $role; - } + self::$option[] = $options; } /** @@ -367,9 +359,9 @@ class Route * @access public * @return array */ - public static function getRole() + public static function getOption() { - return self::$role; + return self::$option; } /** @@ -409,10 +401,9 @@ class Route * @param array|\Closure $routes 路由地址 * @param array $option 路由参数 * @param array $pattern 变量规则 - * @param mixed $role 角色信息 * @return void */ - public static function group($name, $routes, $option = [], $pattern = [], $role = null) + public static function group($name, $routes, $option = [], $pattern = []) { if (is_array($name)) { $option = $name; @@ -436,7 +427,6 @@ class Route self::$rules['*'][$name]['option'] = $option; self::$rules['*'][$name]['pattern'] = $pattern; } - self::setRole($name, $role); } else { $item = []; foreach ($routes as $key => $val) { @@ -447,9 +437,6 @@ class Route $route = $val[0]; $option1 = array_merge($option, isset($val[1]) ? $val[1] : []); $pattern1 = array_merge($pattern, isset($val[2]) ? $val[2] : []); - if (isset($val[3])) { - self::setRole($name, $val[3]); - } } else { $route = $val; } @@ -487,7 +474,7 @@ class Route self::setGroup($currentGroup, $currentOption, $currentPattern); } else { // 批量注册路由 - self::rule($routes, '', '*', $option, $pattern, $role); + self::rule($routes, '', '*', $option, $pattern); } } @@ -871,6 +858,7 @@ class Route $rule = self::getRouteExpress($item); } if (!empty($rule['route']) && self::checkOption($rule['option'], $request)) { + self::setOption($rule['option']); return self::parseRule($item, $rule['route'], $url, $rule['option']); } } @@ -934,7 +922,7 @@ class Route if (is_string($str) && $str && 0 !== strpos(str_replace('|', '/', $url), $str)) { continue; } - + self::setOption($option); $result = self::checkRoute($request, $rule, $url, $depr, $key, $option); if (false !== $result) { return $result; @@ -950,6 +938,7 @@ class Route $rule = $group . ($rule ? '/' . ltrim($rule, '/') : ''); } + self::setOption($option); if (isset($options['bind_model']) && isset($option['bind_model'])) { $option['bind_model'] = array_merge($options['bind_model'], $option['bind_model']); }