首页 > 代码库 > [李景山php]每天TP5-20170206|thinkphp5-Route.php-2

[李景山php]每天TP5-20170206|thinkphp5-Route.php-2

/**
 * 注册路由规则
 * @access public
 * @param string    $rule 路由规则
 * @param string    $route 路由地址
 * @param string    $type 请求类型
 * @param array     $option 路由参数
 * @param array     $pattern 变量规则
 * @return void
 */
public static function rule($rule, $route = ‘‘, $type = ‘*‘, $option = [], $pattern = [])
{// 注册路由规则 $rule 路由规则 $route 路由地址 $type 请求参数 $变量规则
    $group = self::getGroup(‘name‘);// 获取当前 群组
    if (!is_null($group)) {// 如果当前 组不为空
        // 路由分组
        $option  = array_merge(self::getGroup(‘option‘), $option);// 合并两个分组选项
        $pattern = array_merge(self::getGroup(‘pattern‘), $pattern);// 合并另外的两个分组
    }

    $type = strtoupper($type);// strtoupper 全部转换为大写

    if (strpos($type, ‘|‘)) {// strpos 有类型
        $option[‘method‘] = $type;// 选项
        $type             = ‘*‘;// 类型
    }
    if (is_array($rule) && empty($route)) {// 就是 各种流程处理
        foreach ($rule as $key => $val) {// 遍历循环
            if (is_numeric($key)) {// 如果是 数字
                $key = array_shift($val);// 踢出
            }
            if (is_array($val)) {// 如果是数组
                $route    = $val[0];// 返回值 0
                $option1  = array_merge($option, $val[1]);// 选项
                $pattern1 = array_merge($pattern, isset($val[2]) ? $val[2] : []);// 样式
            } else {
                $route = $val;// 路由值
            }
            self::setRule($key, $route, $type, isset($option1) ? $option1 : $option, isset($pattern1) ? $pattern1 : $pattern, $group);
        }// 调用最后执行的 东西
    } else {
        self::setRule($rule, $route, $type, $option, $pattern, $group);// 调用执行 新产品
    }

}


本文出自 “专注php 群号:414194301” 博客,请务必保留此出处http://jingshanls.blog.51cto.com/3357095/1891971

[李景山php]每天TP5-20170206|thinkphp5-Route.php-2