ThinkPHP的路由模式、调试

我们说路由 的作用相当于现实社会中的邮差,起的是数据转发的作用。现实的邮差是转发的信件,而计算机世界中的路由,转发的是2进制数据。

在ThinkPHP中,确切的说,路由的作用是将特定的URL请求分发到特定的触发器上。有人说,这不是MCA应该做的事吗?的确,在没有路由以前,这就是MCA的事情,但如果有了路由,则会使MCA失效。

ThinkPHP的路由有两种模式:一种是混合模式(默认),它的意思是说,如果当前URL找不到相关的路由,就去按MCA进行数据转发。
另一种是强制模块,它的意思是说,如果当前URL找不到相关路由,就会抛出异常而中断程序执行。

2.路由到操作方法:跳过router.php

3.路由到方法尽量不要用

4.路由到闭包函数

5.路由到重定向地址

开启路由

config.php 有一行,负责路由的开启。
'url_route_on' => true,,没错,默认路由的状态是开启的。
所以在这,我们在只启用混合路由模式的情况下,不需要对配置信息做任何更改。

配置路由

负责路由的配置文件为app/route.php

路由规则里有变量就叫动态路由规则,没有就叫静态路由规则

解释:地址栏中输入demo/lesson.shtml

路由规则可以通过两种方式配置:第一种为上图所示;

第二种可以通过数组方式配置(两种方式):如下图所示

1中路由地址比较复杂,2中只有一个路由地址

开启trace

在config.php中找到
'app_trace' => false,

修改为:
'app_trace' => true,

保存。

我们可以利用日志写入的功能,来查看一些变量的值。这样做的是好处是:我们写完测试变量的代码后,并不需要删除他们。因为他们的信息只会被打印至控制台中。用户并看不到他们。

下面,我们在教师管理的index 触发器中,利用trace()助手函数在控制台中打印信息以测试。

 public function index()
    {
        // 获取查询信息
        $name = Request::instance()->get('name');

        $pageSize = 5; // 每页显示5条数据

        // 实例化Teacher
        $Teacher = new Teacher; 
        
        // 打印$Teacher 至控制台
        trace($Teacher, 'debug');

更改类型为:Console
config.php

   'trace'                  => [
        // 内置Html Console 支持扩展
        'type' => 'Console',
    ],

总结:chrome与输出类型console的组合是我们更愿意看到的结果。

在实际的项目开发中,我们也是这样做的。抛出异常的同时,进行日志记录,这样当出现错误时,我们一是可以通过查看日志文件来定位错误的发生位置及原因;二是,可以在config.php中打开trace,然后在生产环境下通过控制台来快速查看错误发生的位置信息。

猜你喜欢

转载自blog.csdn.net/wocaa2046/article/details/84247817
今日推荐