## 雜項
[TOC]
### 設置匹配模式
在通過調用方法的方式注冊路由后,方法的返回值是當前對象。所以,這樣可以進行鏈式操作。
有一個方法where();用來設置單獨設置匹配模式,不過由于在注冊是可以直接設置所以沒什么大用
示例:
`Route::any('/a-{aid}','index/index/index')->where(['id'=>'(\d+)']);`
### 可選參數
在寫路由匹配模式是通過{params}來確定一個參數,也可以通過`{params?}`表示這是一個可選參數
例如:
`Route::any('/a-{aid}-{aid?}','index/index/index')->where(['id'=>'(\d+)']);`
后面的那一個參數有沒有都可以。
### 路由命名
可以對當前路由進行命名,不過僅僅當次請求有效,不推薦使用
`Route::any('/a-{aid}','index/index/index')->name('read_article');`
### 隱式傳參數
如果當前路由匹配成功后不在繼續匹配那么可以使用隱私傳參
`Route::any('/a-{aid}','index/index/index?rel=baidu.com&time=32322323');`
### 獲取動態參數
`Route::any('/a-{aid}','index/index/index?rel=baidu.com&aid={:1}');`
通過`{:i}`的方式來獲取動態參數如果不存在默認為空,順序從1開始
### 改變pathinfo
有時候我們想要修改pathinfo,在后面追加一些東西
可以使用`{$ext}`的方式來獲取一些server的東西
`Route::any('/a-{aid}','index/index/index.{$ext});`
在規則匹配后會自動替換
#### 可選變量列表
~~~
$v['{$pathinfo}'] = $this->option['pathinfo'];
$v['{$http_host}'] = $this->option['http_host'];
$v['{$request_scheme}'] = $this->option['request_scheme'];
$v['{$script_name}'] = $this->option['script_name'];
$v['{$request_uri}'] = $this->option['request_uri'];
$v['{$path_info}'] = $this->option['path_info'];
$v['{$request_method}'] = $this->option['request_method'];
$v['{$query_string}'] = $this->option['query_string'];
$v['{$http_referer}'] = $this->option['http_referer'];
$v['{$ext}'] = $this->option['ext'];
$v['{$server_name}'] = $this->option['server_name'];
$v['{$request_time}'] = $this->option['request_time'];
~~~
## 保存規則
在正常情況下路由的規則全部是緩存起來的,那么我們要更改一個規則就非常麻煩。
所以,路由組件提供了響應的方法來進行規則的增加刪除和修改。
### 刪除規則
~~~
/**
* 刪除一條正則規則
* @param [type] $key [規則名稱]
* @param string $method [請求方法]
* @return [type] [description]
*/
public function deleteRule($key, $method = 'get')
~~~
### 刪除一個靜態路由
~~~
/**
* 刪除一個靜態路由
* @param [type] $key [匹配地址]
* @return [type] [description]
*/
public function deleteMap($key)
~~~
### 刪除一個域名路由
~~~
/**
* 刪除一個域名路由
* @param [type] $key [域名]
* @return [type] [description]
*/
public function deleteDomain($key)
~~~
### 添加一個不需要解析的正則路由
該方法沒有解析地址而是直接通過合并的方式添加到路由規則里
~~~
/**
* 添加解析好的正則規則
* @param array $rules [規則]
* @param string $method [請求方法]
*/
public function addRules(array $rules, $method = 'any')
~~~
### 保存
在一系列的操作之后并沒有保存到文件,需要調用保存方法
~~~
/**
* 保存當前規則到緩存
* @return [type] [description]
*/
public function save()
~~~
### 獲取正則路由規則的引用
~~~
/**
* 返回規則引用
* @return [type] [description]
*/
public function &getRulesQuote()
~~~
### 路由選項可以參數列表
#### 后綴檢查
~~~
/**
* 后綴檢查 可以多個后綴用|隔開
* @param [type] $op [description]
* @return [type] [description]
*/
private function ext($op)
~~~
#### 禁止后綴
~~~
/**
* [deny_ext 禁止后綴 檢查 多個后綴用|隔開]
* @param [type] $op [description]
* @return [type] [description]
*/
private function deny_ext($op)
~~~
#### 請求方法檢查
~~~
/**
* 方法檢查 可以多種方法使用 |分割
* @param [type] $op [description]
* @return [type] [description]
*/
private function method($op)
~~~
#### 是否是https
~~~
/**
* 是否是https
* @param [type] $op [description]
* @return [type] [description]
*/
private function https($op)
~~~
#### 檢查http_host域名
~~~
/**
* 檢查http_host域名 多個用|隔開
* @param [type] $op [description]
* @return [type] [description]
*/
private function isDomain($op)
~~~
#### pajx檢查
~~~
// 是否是pajx 如果為true表示必須是這個來源如果$op為false表示不能是這個來源
private function pjax($op)
~~~
#### 來源檢查
~~~
/**
* 來源域名
* @param [type] $op [description]
* ['www.baidu.com',1] 存在第二個參數視為 不能是這個來源
* @return [type] [description]
*/
private function referer(array $op)
~~~
#### 端口檢查
~~~
/**
* 端口
* @param [type] $op [description]
* [80,1] 存在第二個參數視為 不是這個端口
* @return [type] [description]
*/
private function port(array $op)
~~~
#### 路由前綴
~~~
/**
* 路由前綴和 別名路由相同
* @param array $op [第一個參數是前綴,如果存在第二個表示不能是這個前綴]
* @return [type] [description]
*/
private function prefix($op = [])
~~~
#### 檢查是否存在一些參數
~~~
/**
* 檢查是否存在某些參數
* @param array $op [description]
* @return [type] [description]
*/
private function param(array $op = [])
~~~
#### 自定義回調函數
~~~
/**
* 自定義回調
* @param [type] $op [回調函數 調用時會傳入當前對象]
* @return function [description]
*/
private function callback($op)
~~~
- 簡介
- 開發規范
- 許可協議
- 作者
- 安裝框架
- 更新日志
- 基礎
- 入口文件
- 全局變量
- 系統配置
- 目錄結構
- 系統常量
- 自動加載
- 系統函數
- 應用密匙
- 依賴注入
- 配置
- 說明
- 基本使用
- 擴展應用
- C函數
- 容器
- 介紹
- 使用容器
- 綁定服務
- 數組訪問
- 請求
- 基礎
- 函數常量
- 獲取信息
- 方法偽造
- 路由
- 基礎使用
- 域名路由
- 靜態路由
- 正則路由
- 路由分組
- 地區
- 資源路由
- 閉包
- 其它方法
- 響應
- 響應輸出
- session
- 設置
- 生命周期數據
- cookie
- 加密使用
- 中間件(鉤子)
- 基礎使用
- 保存到文件
- 數據
- 配置
- 核心操作
- 聚合查詢
- 查詢構造器
- 關系型數據庫關聯
- 事務處理
- 日志
- 日志
- 視圖
- 模板配置
- 模板文件
- 模板語言
- 基礎使用
- 內置標簽
- 擴展標簽庫
- 模板
- 變量輸出
- 原樣輸出
- 運算符
- 緩存
- 緩存配置
- 基本操作
- 多語言
- 基礎使用
- 擴展庫
- 數據驗證
- xml
- 壓縮
- 工具類
- 字符串
- 文件上傳
- 目錄操作
- 二維碼
- 驗證碼
- 圖片處理
- curl
- url生成