在項目的配置目錄下,創建route.php
一個空的route配置文件:
~~~
<?php
return array(
'route' => array(
)
);
~~~
所有配置都在
~~~
'route' => array(
)
~~~
中編寫。
一個完整的路由配置示例:
~~~
<?php
return array(
'route' => array(
// 默認不指定文件時使用的文件名。可不設置。
'default_file' => 'index.php',
// 是否隱藏默認文件名,不設置時默認為false
'hide_default_file' => true,
// 定義所有入口文件的權限,可不設置
'entrance' => array(
'index.php' => array(
// 使用允許規則
'priority' => 'allow',
// 允許訪問Public模塊下所有控制器所有動作
'allow' => array('Public/*/*'),
// 無效
'deny' => array('Setting/*/*'),
),
'admin.php' => array(
// 使用拒絕規則
'priority' => 'deny',
// 無效
'allow' => array('Public/*/*'),
// 禁止訪問Setting模塊下所有控制器所有動作,禁止訪問Public/Index/index
'deny' => array('Setting/*/*','Public/Index/index'),
// 默認缺省的模塊/控制器/動作,*號代表所有
'default_mca' => 'Admin/Index/*'
)
),
// 路由規則
'rules' => array(
// URL => 模塊/控制器/動作名
'a.php@/b/[b:word:3]' => 'Home/Index/$1',
'a/[alias:word]' => '>/Home/Index/$1',
'b/[b:word:1:2][c:word:3]' => 'Home/Index/$1$2',
'login' => 'Admin/User/login',
'c/[id:\d+]' => 'Home/Index/test'
)
)
);
~~~
URL格式:
~~~
[文件名@]地址
~~~
可以在地址中定義各種變量,還可以用類型長度來限定。
格式:
~~~
[變量名[:類型[:長度最小值[:長度最大值]]]]
~~~
可選類型:
| 名稱 | 支持長度 | 描述 |
| -- | -- | -- |
| int | √ | 整數 |
| double | | 小數 |
| letter | √ | 大小寫字母 |
| big_letter | √ | 大寫字母 |
| small_letter | √ | 小寫字母 |
| word | √ | 包含大小寫英文字母、0-9數字、_- |
| 留空 | √ | 所有字符 |
| 正則表達式 | √ | 原樣代入,正則中需要出現`[`和`]`的,請在前面加上反斜杠`\` |
下面主要講解的是rules中的路由規則。
~~~
'a.php@/b/[b:word:3]' => 'Home/Index/$1'
~~~
生效的URL:
~~~
http://localhost/a.php/b/abc
~~~
對應模塊控制器動作:
~~~
Home/Index/abc
~~~
如果在對應動作方法中定義參數$b,則會把abc傳入$b參數中。
* * * * *
~~~
'a/[alias:word]' => '>/Home/Index/$1'
~~~
生效的URL:
~~~
http://localhost/a/a123
~~~
對應模塊控制器動作:
~~~
Home/Index/a123
~~~
如果在對應動作方法中定義參數$alias,則會把a123傳入$alias參數中。
* * * * *
~~~
'b/[b:word:1:2][c:word:3]' => 'Home/Index/$1$2'
~~~
生效的URL:
~~~
http://localhost/a/test
http://localhost/a/login
~~~
對應模塊控制器動作:
~~~
Home/Index/a123
~~~
不生效的URL:
~~~
http://localhost/a/hehehe
http://localhost/a/log
~~~
如果在對應動作方法中定義參數$b或$c,則會把對應值傳入參數中。
* * * * *
~~~
'login' => 'Admin/User/login'
~~~
生效的URL:
~~~
http://localhost/login
~~~
對應模塊控制器動作:
~~~
Admin/User/login
~~~
起到了偽靜態的作用,當然你也可以定義為
~~~
'login.html' => 'Admin/User/login'
~~~
這時訪問
~~~
http://localhost/login.html
~~~
同樣對應模塊控制器動作:
~~~
Admin/User/login
~~~
* * * * *
~~~
'c/[id:\d+]' => 'Home/Index/test'
~~~
生效的URL:
~~~
http://localhost/c/123
~~~
對應模塊控制器動作:
~~~
Home/Index/test
~~~
如果在對應動作方法中定義參數$id,則會把123傳入$id參數中。
- 序言
- 有些話想說
- 基礎入門
- 簡介
- 下載安裝YurunPHP
- 運行環境
- 開發規范
- 目錄結構
- 模塊
- 控制器
- 自動加載
- 手動加載
- 項目配置
- 入口文件
- 項目目錄結構
- 配置文件
- 驅動配置
- 數據庫配置
- 項目初始化處理
- 框架編譯
- 項目部署
- 控制器
- 創建控制器
- 加載模版顯示頁面
- AJAX返回數據
- 模型
- 創建模型
- 實例化模型
- 數據管理
- 連貫操作
- distinct
- field
- from
- where
- wherePk
- group
- having
- order
- limit
- join
- page
- headTotal/footTotal
- 連貫操作收尾方法
- select
- selectPage
- buildSQL
- selectValue
- selectBy
- getBy
- getByPk
- random
- inc
- dec
- add
- edit
- delete
- 合計函數
- save
- 執行SQL語句
- 創建數據并驗證
- 字段映射
- 增刪改查前置和后置
- Response類
- GET/POST/COOKIE/REQUEST
- Cookie
- Session
- 如何自定義Session存儲
- 數據庫操作
- 常用操作
- 查詢記錄
- 存儲過程
- 數據庫函數
- MSSQL
- 視圖
- 調用視圖
- 給視圖傳值
- 模版引擎
- 輸出
- 使用PHP代碼
- 模版標簽
- if
- switch
- for
- counter
- foreach
- include
- js/css/image
- url
- origin
- 模版常量替換
- 后臺視圖控件
- 通用屬性用法
- 數據集綁定
- 下拉框(select)
- 單選框(radio)
- 單選框組(radiogroup)
- 選擇框(checkbox)
- 選擇框組(checkboxgroup)
- 表格(table)
- 文本框(textbox)
- 分頁條(pagebar)
- 數據驗證
- 驗證方法
- between
- betweenEqual
- empty_str
- not_empty_str
- regex
- length
- lengthChar
- mobile
- tel
- phone
- postcode
- url
- ip
- lt/gt/ltEqual/gtEqual
- equal/unequal
- in/notin
- idcard
- 路由
- 路由配置
- 自定義分層
- 緩存
- 緩存配置
- 使用緩存
- 配置
- 配置驅動配置
- 使用配置
- 過濾域名
- 日志
- 日志驅動配置
- 文件日志
- 事件
- 事件列表
- 插件
- 多語言支持
- 定時任務
- API接口開發
- CLI命令行模式
- Soap WebService