thinkphp 页面加载时间长怎么调试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp 页面加载时间长怎么调试相关的知识,希望对你有一定的参考价值。

1、在项目配置文件里面打开调试模式DEBUG_MODE,这样能够让你发现大部分的错误原因 。可能影响验证码的输出。

2、如果不想使用调试模式,可以单独开启页面Trace显示。发现很多人不想使用调试模式的原因居然是因为有页面Trace信息的输出,其实这里面有一个误区,以为调试模式就一定会有页面Trace,但其实调试模式和页面Trace没有必然的关系,只是因为打开调试模式后,系统默认的调试配置文件会开启页面Trace显示,所以你完全可以给项目单独定义调试配置文件。

3、使用系统定义的dump函数,该方法同var_dump可以输出任何类型的变量信息,而且更加有利于在浏览器里面查看,例如:
$User=D("User");
$list=$User->findAll();
dump($list);
复制代码
4、页面Trace信息只能显示当前页面执行的sql语句,但无法查看ajax方式执行的后台操作里面的sql语句,所以你还可以开启sql日志记录SQL_DEBUG_LOG来记录每一条执行的sql语句,并且可以查看到每条sql语句的执行时间 sql日志文件位于Logs目录下面,会自动按日期来区分每天的sql日志。

5、另外一个是在执行某个数据操作后怀疑sql执行有错误的话,可以使用模型类的getLastSql方法来查看上次执行的sql语句,以便分析具体的错误原因。例如:
$User=D("User");
$User->id=3;
$User->name=\'Thinkphp\';
$User->save();
echo $User->getLastSql();
//输出结果将为:update think_user set name=\'ThinkPHP\' where id=3;
复制代码
6、当需要调试某段代码的运行时间的时候,可以使用系统提供的debug_start($label)和debug_end($label)方法,例如:
debug_start(\'demo\');
//这里是你的代码段.......debug_end(\'demo\');
参考技术A 精简化操作,对于不常用的数据请求 写入缓存

thinkphp3.2.3 控制器应该怎么调用扩展配置文件

    扩展配置

扩展配置可以支持自动加载额外的自定义配置文件,并且配置格式和项目配置一样。

设置扩展配置的方式如下(多个文件用逗号分隔):

// 加载扩展配置文件

\'LOAD_EXT_CONFIG\' => \'user,db\', 

假设扩展配置文件user.php 和db.php分别用于用户配置和数据库配置,这样做的好处是哪怕以后关闭调试模式,你修改db配置文件后依然会自动生效。

如果在应用公共设置文件中配置的话,那么会自动加载应用公共配置目录下面的配置文件Application/Common/Conf/user.php和Application/Common/Conf/db.php。

如果在模块(假设是Home模块)的配置文件中配置的话,则会自动加载模块目录下面的配置文件 Application/Home/Conf/user.php 和 Application/Home/Conf/db.php。

默认情况下,扩展配置文件中的设置参数会并入项目配置文件中。也就是默认都是一级配置参数,例如user.php中的配置参数如下:

<?php

//用户配置文件

return array(

    \'USER_TYPE\'      => 2, //用户类型

    \'USER_AUTH_ID\'   => 10, //用户认证ID

    \'USER_AUTH_TYPE\' => 2, //用户认证模式

);

那么,最终获取用户参数的方式是:

C(\'USER_AUTH_ID\');

如果配置文件改成:

// 加载扩展配置文件

\'LOAD_EXT_CONFIG\' => array(\'USER\'=>\'user\',\'DB\'=>\'db\'), 

则最终获取用户参数的方式改成:

C(\'USER.USER_AUTH_ID\');

参考技术A 用C函数

以上是关于thinkphp 页面加载时间长怎么调试的主要内容,如果未能解决你的问题,请参考以下文章

运行加载时页面响应时间长,但手动加载时页面响应时间低

Firebug net tab 报告的页面接收时间长(页面加载缓慢)

0803THINKPHP基础:加载页面请求常用类常用方法获取变量

VS2010 调试 页面一直加载,急!!!

使用Ajax异步加载页面时,怎样调试该页面的Js

使用 CircleCI 和 Minitest 进行前端测试:测试等待页面加载的时间不够长