[李景山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);// 調用執行 新產品
    }

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章