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 报告的页面接收时间长(页面加载缓慢)