当前位置:   article > 正文

ThinkPHP5 之route(路由)简述_tp5 route

tp5 route

版本TP5


TP5 Route


前言

本文我们来研究一下ThinkPHP5的路由机制。

虽然说TP5的完全开发手册上面讲路由讲的很清楚,但是我们还是在本文研究一下TP5的路由是怎么一回事,毕竟看博客比看书要舒服一些嘛。


首先,提出三个问题:

1.Route(路由)是什么?

官方文档里面是这样子定义的=>路由的作用是简化URL访问地址,并根据定义的路由类型做出正确的解析。

手动解释一下:平常我们按照习惯去访问我们的ThinkPHP项目的时候,常规的url应该是这样子写的,(本地举例)http://localhost/项目名/public/index.php/模块名/控制器名/方法名

一串url输进去之后,就会感觉很绝望,(小声吐槽)=>“我只是想测试一个小接口让我打这么长一串地址、地址太长记不住呀......”。这个时候我们就可以用路由去简化他的地址,并且在缩短地址的同时进行一些规则的定义。


2.为什么要使用路由?

可能有人会脱口而出:为了简化路径呀。当然,这是原因之一,但原因并没有那么简单。

简化路径是一个比较大的原因,因为我当初就是觉得路径太长然后跑过去把路由开起来了,但是后来在使用的过程中,发现Route的作用其实不仅局限于简化路径。

我们可以开启路由的强制使用,让大家只能从我定义的路由进来,这样就有一个好处,你在一些不想给用户访问的控制器写了一些脚本,你开启了完全路由强制使用的话,用户是访问不了这些脚本的,否则的话,用户如果访问了这些脚本,脚本有时修改数据库的,那么就比较危险了。

还有就是我们可以定义好从这个路径进来是get操作还是post操作,就不会出现以前有种什么情况,一个控制器的方法,你从get也可以访问,post也可以访问,就很杂乱,当然有人会说,get和post都能访问也没什么大不了的吧,其实将这些方法之间区分开来,对于Restful API的思想的体现是比较有帮助的。

同理,http和https的规定我就不说了。


到了这里,大家是不是觉得路由有些神奇了,原来它可以干这么多事情,那么我们就来研究一下怎么去使用它。


Route的使用

使用之前,我们先了解一下配置信息,还是我的这个叉叉项目,打开config文件:


有两个要注意的地方,首先第一个红框里面tp默认是给我们开启了路由这个模式的,第二个红框,tp默认是关闭掉强制使用路由这一项,什么意思呢?就是我现在通过我们平常的地址模式访问也可以成功,通过路由访问也可以成功。

我平常做项目的时候为了安全起见是会将这一条改成true的,那么我们来看一下效果

未开启强制路由的时候:


按照常规的地址访问是可以成功的,好我们现在开启强制使用路由:


同样的地址报错了,并且抛出了一个路由未找到的错误,因为我们未在路由文件中定义这个路由,所以它抛出了错误,说明我们现在是强制使用了路由。


那么我们现在来定义一下它,首先从最简单的一种:


找到route文件


首先我们先要引入一下think下面的路由这个类,然后我们调用里面get静态方法,从方法名我们可以很容易得知,这是通过get方法去访问的,那么第一个参数和第二个参数代表什么呢,第二个参数代表常规url中的 模块/控制器/方法,第一个参数代表想要用什么名称来替换后面的 模块/控制器/方法。

也就是说,我原本使用http://localhost/xx/public/index.php/xx/test/xx可以访问到我的控制器方法,现在只需要http://localhost/xx/public/index.php/xx就可以访问到我的控制器方法了。

看一下效果:


成功使用路由访问,那么,下一步我们来细究一下这个规则的制定(比如说get和post访问的区别)

我现在将get方法改成post方法然后我在用get方法去访问看看会发生什么:





可以看到我们采用了get是访问不到的,只有post才能访问到,怎么样,感受到路由好玩的地方了吗。

深一点的我们还可以这样子定义路由:



第三个参数代表访问的方式,像我这里面定义的这种形式就是get和post操作都可以访问到,最后一个参数代表的是要不要检验https协议,如果是false的话就不会检验https,如果是true的话我们用http去访问的时候就会找不到,这样子我们就更近一步的保障了我们的接口的安全性。至于效果的话就不演示了。


更多

路由还有什么特别之处呢?路由甚至可以将get操作传的参数归并进url里面,我们原本的get操作应该是这样子的:url?id=1,经过路由之后,我们可以把它规定成 url/1,这样子连id这个参数都被隐藏掉了,好处大家都晓得吧。至于过程的话就上开发手册上去淘一淘吧。

当然,路由还有一些别的辅助性的小功能,比如说闭包函数呀什么的,我就不一一介绍了,因为这种辅助性的功能在开发过程中不是很常用,感兴趣的话可以去完全开发手册上面去看。

路由的相关简介和使用路由的好处就介绍到这里。

本期课程结束,下一节将介绍本地XAMPP虚拟域名配置。

下节地址:https://blog.csdn.net/qq_36652619/article/details/80295226


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/351302
推荐阅读