首页 » Web前端 » tp5php技巧_ThinkPHP5开拓连载92tp5路由路由参数

tp5php技巧_ThinkPHP5开拓连载92tp5路由路由参数

duote123 2024-12-12 0

扫一扫用手机浏览

文章目录 [+]

把稳:

1. 路由参数可以在定义路由规则的时候直接传入(批量),不过5.1采取了更加面向工具的办法进行路由参数配置,因此利用方法配置更加清晰。

tp5php技巧_ThinkPHP5开拓连载92tp5路由路由参数

路由参数表:

tp5php技巧_ThinkPHP5开拓连载92tp5路由路由参数
(图片来自网络侵删)

把稳:

1. ext和deny_ext参数许可设置为空,分别表示不许可任何后缀以及必须利用后缀访问。

2. V5.1.6+版本开始,路由的before行为参数建议改为利用路由中间件替代。

1. 路由参数

①新建Index掌握器,并新建paramFun方法:

②设置paramFun方法的路由参数

预览:

以上办法与利用方法设置(新版推举的设置办法)等效:

预览:

把稳:

1. 显然第二种办法更加直不雅观,而且便于IDE的自动提示。

2. 这些路由参数可以稠浊利用,只要有任何一条参数检讨不通过,当前路由就不会生效,连续检测后面的路由规则。

2. URL后缀

把稳:

1. URL后缀如果是全局统一的话,可以在运用配置文件app.php中设置url_html_suffix参数,如果当前访问的URL地址中的URL后缀是许可的伪静态后缀,那么后缀本身是不会被作为参数值传入的。

不同参数设置的差异如下:

1)URL后缀的基本利用

①在Index掌握器中,新建urlFun方法

②设置urlFun方法的路由

预览:

2)匹配多个后缀

重新设置urlFun方法的路由,设置可以匹配多个后缀:

预览:

3)禁止访问的URL后缀

重新设置urlFun方法的路由,设置禁止访问的URL后缀:

预览:

把稳:

1. 如果denyExt方法不传入任何值,表示必须利用后缀访问。

3. 域名检测

支持利用完全域名或者子域名进行检测。

1)完全域名检测

①在Index掌握器中,新建domainFun方法

②设置domainFun方法的路由,进行域名检测

预览:

③修正domainFun方法的路由,域名检测的域名设置为其他的域名,测试是否能访问

预览:

把稳:

1. 由于未设置虚拟域名,因此利用的是localhost,可以设置虚拟域名进行测试。

2)子域名检测

有子域名的域名可以进行子域名检测。

二级域名、三级域名统称为子域名。

把稳:

1. 如果须要给子域名定义批量的路由规则,建议利用domain方法进行路由定义。

4. HTTPS检测

支持检测当前是否HTTPS访问。

1)HTTPS检测——必须利用HTTPS访问

①在Index掌握器中,新建httpsFun方法

②设置httpsFun方法的路由,进行https检测

预览:

2)HTTPS检测——必须利用HTTP访问

修正httpsFun方法的路由,利用http访问:

预览:

5. 前置行为检测

支持利用行为对路由进行检测是否匹配,如果行为方法返回false表示当前路由规则无效。

①在Index掌握器中,新建beforeFun方法

②设置beforeFun方法的路由,进行前置行为检测

把稳:

1. 前置行为检测app\index\controller\Index为访问的掌握器的命名空间加掌握器名。

2. 前置行为检测须要合营掌握器中的run方法利用。

③在Index掌握器中,新建run方法,合营前置行为检测路由利用

预览:

把稳:

1. 为了方便利用,设置了虚拟域名www.tp5.com

2. 可以在run方法中自行写关于前置行为检测的判断。

3. 可以同时利用多个行为进行检测,并且支持利用闭包。

4. 由于前置行为的分外性,在路由参数的有效性检讨后,无论是否终极匹配该路由,都会进行前置行为检讨(路由分组的话,会在匹配改分组后,再检讨)。

6. 后置行为实行

把稳:

1. V5.1.6+版本开始建议利用中间件替代路由后置行为。

可以为某个路由或者某个分组路由定义后置行为实行,表示当路由匹配成功后,实行的行为。

①在Index掌握器中,新建afterFun方法

②设置afterFun方法的路由,设置后置行为实行

③后置行为实行也须要合营run方法

Index掌握器下的run方法:

预览:

把稳:

1. 如果成功匹配到after/:id路由后,就会实行行为类的run方法,参数是路由地址,可以动态改变。
同样,后置行为也支持传入闭包。

2. 只要利用了前置或后置行为,其他不该用的路由,也会自动实行前置后置行为,这是个问题,官方暂未修复(V5.1.12)。

7. 合并额外参数

常日用于完全匹配的情形,如果有额外的参数则合并作为变量值。

①在Index掌握器中,新建mergeFun方法

②设置mergeFun方法的路由,合并额外参数

预览:

把稳:

1. 正常访问:

http://www.tp5.com/merge/tp/php后会被匹配到,并且name变量的值为tp/php。

此时测试失落败(V5.1.12)。

​ThinkPHP5连载为卓象程序员原创,转载请联系卓象程序员

关注卓象程序员,定期发布技能文章

下一篇讲解“路由 - 路由参数 - 设置Header信息”

标签:

相关文章

php变量主要吗技巧_PHP该不该运用全局变量

避免滥用全局变量:全局变量使得变量在全体运用程序中都可见,这可能导致命名冲突、难以追踪变量的值变革等问题。因此,该当只管即便减少全...

Web前端 2024-12-14 阅读0 评论0