解析使用ThinkPHP应该掌握的调试手段

简介: 解析使用ThinkPHP应该掌握的调试手段     使用ThinkPHP应该掌握的调试手段经常看到有人问到findAll的返回数据类型是什么之类的问题,以及出错了不知道什么原因的情况,其实还是没有熟悉ThinkPHP内置的调试手段和方法,抛开IDE本身自带的调试方式不说,如果你正在用或者打算用ThinkPHP开发的话,那么下面一些和调试相关的方法你是应该要了解和掌握的: 1、在项目配置文件里面打开调试模式DEBUG_MODE,这样能够让你发现大部分的错误原因 。

解析使用ThinkPHP应该掌握的调试手段

 
 

使用ThinkPHP应该掌握的调试手段
经常看到有人问到findAll的返回数据类型是什么之类的问题,以及出错了不知道什么原因的情况,其实还是没有熟悉ThinkPHP内置的调试手段和方法,抛开IDE本身自带的调试方式不说,如果你正在用或者打算用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 where id=3;


6、当需要调试某段代码的运行时间的时候,可以使用系统提供的debug_start($label)和debug_end($label)方法,例如:

复制代码 代码如下:


debug_start('demo');
// 这里是你的代码段.......
debug_end('demo');

目录
相关文章
|
1月前
|
存储 NoSQL 安全
【C++调试】深入探索C++调试:从DWARF到堆栈解析
【C++调试】深入探索C++调试:从DWARF到堆栈解析
62 1
|
3月前
|
NoSQL Linux 开发工具
【深入解析git和gdb:版本控制与调试利器的终极指南】(下)
【深入解析git和gdb:版本控制与调试利器的终极指南】
|
1月前
|
JSON JavaScript 数据格式
【深入探究C++ JSON库】解析JSON元素的层级管理与遍历手段
【深入探究C++ JSON库】解析JSON元素的层级管理与遍历手段
93 2
|
1月前
|
算法 Unix Linux
【C/C++ 疑难解决】深入解析C++链接错误:实用的调试技巧和方法
【C/C++ 疑难解决】深入解析C++链接错误:实用的调试技巧和方法
13 1
|
3月前
|
NoSQL Unix 开发工具
【深入解析git和gdb:版本控制与调试利器的终极指南】(上)
【深入解析git和gdb:版本控制与调试利器的终极指南】
|
9月前
|
安全 Java Spring
Spring Security 401和403错误解析及调试:从源码到调试技巧
Spring Security 401和403错误解析及调试:从源码到调试技巧
|
存储 测试技术 C语言
【内卷数据结构】顺序表超详细解析 | 从零开始步步解读 | 画图理解+调试分析 | 菜单制作
本章节将对顺序表的概念进行介绍,着重讲解动态顺序表。对常用的接口函数进行一个个讲解,并进行解析。顺序表讲解部分将从零实现顺序表接口函数,遇到问题我会进行一步步地调试说明,通过对本章的学习不仅能学会顺序表,还能实战练习下调试的技能。调试不仅仅是帮助我们分析程序找到错误的,也可以让我们去观察和理解程序。调试才是硬技能!写一点点测一点点,不要写完了再来测,这样我们就可以很轻松的找出问题。
105 0
【内卷数据结构】顺序表超详细解析 | 从零开始步步解读 | 画图理解+调试分析 | 菜单制作
Project Reactor 深度解析 - 2. 响应式编程调试,FLow的概念设计以及实现(下)
Project Reactor 深度解析 - 2. 响应式编程调试,FLow的概念设计以及实现(下)
|
Arthas 缓存 测试技术
Project Reactor 深度解析 - 2. 响应式编程调试,FLow的概念设计以及实现(上)
Project Reactor 深度解析 - 2. 响应式编程调试,FLow的概念设计以及实现(上)
Project Reactor 深度解析 - 2. 响应式编程调试,FLow的概念设计以及实现(上)

推荐镜像

更多