/** * 註冊路由規則 * @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]每天TP5-20170206|thinkphp5-Route.php-2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.