18、TP5的路由初体验

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

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

请求流程

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

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

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


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

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

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

<?php
return [
  // 是否开启路由
  'url_route_on'           => true,
];
 ?>

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

<?php
namespace app\edu\controller;
class Test
{
  public function demo1()
  {
    return 'I am Peter';
  }
}

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

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

<?php
think\Route::rule('demo1','edu/test/demo1');
 ?>

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

非法请求

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


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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,890评论 18 139
  • 理工寝室商店-微信小程序 疑问小结 当时在XAMMP下mysql目录下的bin下 php -v 不起作用.到ph...
    这个超人不会飞阿阅读 1,733评论 1 1
  • 路由作用 1.根据实现定义的路由规则,检验URL请求,确定执行或者拒绝; 2.路由规则可自定义,隐藏了原URL地址...
    PlusNie阅读 2,700评论 1 5
  • 文章分类 后台文章分类列表页模板导的详细步骤建立数据表blog_category,并添加相应的文章字段使用php ...
    JoyceZhao阅读 1,764评论 0 14
  • Laravel 学习交流 QQ 群:375462817 本文档前言Laravel 文档写的很好,只是新手看起来会有...
    Leonzai阅读 8,042评论 2 12