ThinkPHP5 之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的规定我就不说了。

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

首先进入thinkphp/convention.php进行设置如下:

在进入application/config.php进行设置如下

 

以上是我们开启了强制使用路由:所以之前的常规的地址访问已经废掉不能用了

现在我们在application/route.php下开始配置新的路由如下:

use think\Route;
//用户接口
Route::get('user','api/index/user');
//轮播图接口
Route::any('file','api/index/file');
//帮助中心接口
Route::any('help','api/index/help');

大功告成然后就可以正常访问了:

猜你喜欢

转载自blog.csdn.net/qq_43572631/article/details/85139380