## 正則路由
所說的get post delete put any路由都是正則路由,只要有動態參數的都是通過正則表達式進行匹配的,所以稱為正則路由。
[TOC]
### get路由
~~~
/**
* get請求方式的路由規則
* @param [type] $rule [路由規則]
* @param [type] $route [路由地址]
* @param array $option [路由選項]
* 允許 文件后綴 ext 域名 domain 腳本文件 script_name 服務端口 server_port
* 是否是 ajax pjax https 禁止文件后綴 deny_ext
* @param array $pattern [動態參數正則匹配模式]
* @param array $behavior [匹配后的行為]
* @return [type] [description]
*/
public function get($rule, $route, $option = [], $pattern = [], $behavior = [])
~~~
`Route::get('blog-{aid}-{page}','article/index/read',['ext'=>'html'],['aid' => '(\d+)', 'page' => '(\d{1})']);`
實際的匹配表達式為:`blog-(\d+)-(\d{1})`
在配置中使用:
~~~
// get規則
'get' => [
['a-{aid}-{page}', 'article/index/read', ['ext'=>'html'], ['aid' => '(\d+)', 'page' => '(\d{1})'], []],
],
~~~
上面意思為匹配規則、路由地址、條件為后綴必須是html,匹配動態參數的模式
### post路由
post路由所有的參數和注冊方法等同于get路由,只是只在post請求下生效
`Route::post()`
### delete路由
delete路由所有的參數和注冊方法等同于get路由,只是只在delete請求下生效
`Route::delete()`
### put路由
put路由所有的參數和注冊方法等同于get路由,只是只在put請求下生效
`Route::put()`
### any路由
any路由所有的參數和注冊方法等同于get路由,只是只在所有請求下生效
`Route::any()`
### rules路由
前面所有的路由方法全部是統一調用的rules路由
如果第一個參數為false那么路由規則必須是一個數組,這樣表示是一個路由分組
~~~
/**
* 批量添加路由
* @param [type] $rule [規則]
* @param [type] $route [路由到的地址]
* @param string $method [方法]
* @param [type] $option [條件]
* @param [type] $pattern [正則規則匹配模式]
* @param [type] $behavior[行為]
* @return [type] [description]
*/
public function rule($rule, $route, $method = 'any', $option = [], $pattern = [], $behavior = [])
~~~
不推薦使用調用函數的方式注冊,推薦把規則寫入配置文件,調用函數也是需要消耗時間的。
### 匹配模式
在上面路由的參數中都有一個參數可以傳入動態參數的匹配模式
如果不傳入匹配模式這默認匹配模式為`([^/]+?)`可選參數的匹配模式`?([^/]+?)?`
#### 全局匹配模式
如果有相同的動態參數名稱并且匹配模式相同的話可以設置全局匹配模式``
`Route::globalPattern(['id'=>'(\d+)'])`
這樣所有動態參數為id的全部都是應用到當前匹配模式
推薦在配置文件中寫入
~~~
// 全局替換模式
'globalPattern' => [
'id'=>'(\d+)'
],
~~~
- 簡介
- 開發規范
- 許可協議
- 作者
- 安裝框架
- 更新日志
- 基礎
- 入口文件
- 全局變量
- 系統配置
- 目錄結構
- 系統常量
- 自動加載
- 系統函數
- 應用密匙
- 依賴注入
- 配置
- 說明
- 基本使用
- 擴展應用
- C函數
- 容器
- 介紹
- 使用容器
- 綁定服務
- 數組訪問
- 請求
- 基礎
- 函數常量
- 獲取信息
- 方法偽造
- 路由
- 基礎使用
- 域名路由
- 靜態路由
- 正則路由
- 路由分組
- 地區
- 資源路由
- 閉包
- 其它方法
- 響應
- 響應輸出
- session
- 設置
- 生命周期數據
- cookie
- 加密使用
- 中間件(鉤子)
- 基礎使用
- 保存到文件
- 數據
- 配置
- 核心操作
- 聚合查詢
- 查詢構造器
- 關系型數據庫關聯
- 事務處理
- 日志
- 日志
- 視圖
- 模板配置
- 模板文件
- 模板語言
- 基礎使用
- 內置標簽
- 擴展標簽庫
- 模板
- 變量輸出
- 原樣輸出
- 運算符
- 緩存
- 緩存配置
- 基本操作
- 多語言
- 基礎使用
- 擴展庫
- 數據驗證
- xml
- 壓縮
- 工具類
- 字符串
- 文件上傳
- 目錄操作
- 二維碼
- 驗證碼
- 圖片處理
- curl
- url生成