## 正则路由
所说的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生成