php开发接口路由控制版本,ThinkPHP 2.1 版本 URL 路由规则对比 2.0 版本的变更

ThinkPHP 2.1 路由

ThinkPHP 2.1 版本(包括 2.1RC 版本)启用了全新的 URL 路由定义规则,与 2.0 本版相比,有两个方面的区别:

路由配置方式:支持 routes.php 文件配置与配置文件 Config.php 中使用 URL_ROUTE_RULES 选项进行配置

路由配置规则。

另外在 2.1 版本中,还解决了路由名称不能使用大写英文字符的 bug 。

routes.php 文件配置

ThinkPHP 2.1 版本路由规则做了较大改动,原规则:

return array(

// 常规路由

'路由名称'=>array('模块名称', '操作名称', '参数定义', '额外参数'),

// 泛路由

'路由名称@'=>array(

array('路由匹配正则', '模块名称', '操作名称', '参数定义', '额外参数'),

),

)

变更为:

return array(

// 常规路由

array('路由名称','[分组/]模块/操作名', '路由对应变量','额外参数')

// 泛路由

array('正则定义','[分组/]模块/操作名', '路由对应变量','额外参数')

)

路由例子

前面2.0版本中 ThinkPHP路由使用 与 ThinkPHP泛路由 两文中的路由例子,对应 2.1 版本中变更如下:

return array(

// 常规路由

array('product','Products/show', 'category,product_id', 'status=1')

// 解析到分组

array('product2','Admin/Products/show', 'category,product_id', 'status=1')

// 泛路由

array('/^product/(\d+)/(\d+)$/is','Products/archive', 'year,month')

)

可以看出,定义规则做了一定的变更,其中泛路由中,正则定义匹配从 APP_NAME 后开始而不是像 2.0 版本从路由名后开始匹配,如下红色部分:

http://www.5idev.com/index.php/product/2010/10

另外增加了PHP正则修正符 i(忽略大小写)和 s(将字符串视作一行,换行符作为普通字符匹配),这个是具体情况是否需要,关于正则表达式更多信息参见《PHP 正则表达式》。

Config.php 文件配置

除了可以在 routes.php 文件进行路由配置外,也可以直接在配置文件 Config.php 中使用 URL_ROUTE_RULES 项目进行设置,定义规则一致:

'URL_ROUTE_RULES' => array(

array('product','Products/show', 'category,product_id', 'status=1')

array('/^product/(\d+)/(\d+)$/is','Products/archive', 'year,month')

),

如果有 routes.php 文件配置,将会优先使用 routes.php 文件配置中的路由定义。

总的来说,ThinkPHP 2.1 版本的路由配置在配置规则上显得更加统一简练,同时也提供了在配置文件 Config.php 中直接配置路由。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值