18、TP5的路由初体验

本章我们先体验下什么是路由,以及路由带来的好处。

首先,我们先了解一下URL请求的执行流程:

请求流程

路由的作用如下:
路由作用

路由规则应该写在哪里?
书写路由规则

那么,问题来了,为什么不能把路由注册的语句写在控制器的方法中呢?


我们通过实际案例来看看原因:
1、首先创建一个自定义配置文件:/config/config.php,当然啦,前提别忘了在入口文件中定义一下自定义配置文件目录:

define('CONF_PATH', __DIR__ . '/../config/');

要想使用路由,就必须要确保已经配置了启用url路由,所以我们需要在自定义配置文件:/config/config.php中添加启动url路由的配置:

 true,
];
 ?>

2、创建一个/application/edu/controller/Test.php文件,写上代码:

3、浏览器中使用PATH_INFO格式去访问:http://tp5.com/edu/test/demo1,成功了。
但是url略长,并且一眼就看出来哪些是模块哪些是控制器,从安全性的角度上来讲,是不行的,所以我们要使用路由。

4、在自定义配置文件夹下创建一个/config/route.php文件,写入路由规则:


再在浏览器地址栏中输入:http://tp5.com/edu/test/demo1,就会提示

非法请求

这时候就要使用路由配置后的url:http://tp5.com/demo1才能正常访问。


现在来回答前面的提问,为什么不能将路由写到控制器中:
如果将路由写到控制器中,那么当url请求已经执行到了控制器的时候,其实你真实的url地址早就暴露了,还要路由规则干嘛?
路由规则其实是在应用级层面上就应该要配置的。

如果没有自定义配置文件,则一般路由规则是写在/application/route.php文件下的,如果自定义了配置文件,就写在/config/route.php文件里。

你可能感兴趣的:(18、TP5的路由初体验)