【转】使用ThinkPHP必须掌握的调试方法 - 沉重的蚂蚱

tswcypy 2021-10-26 原文


【转】使用ThinkPHP必须掌握的调试方法


经常看到有人问到findAll的返回数据类型是什么之类的问题,以及出错了不知道什么原因的情况,其实还是没有熟悉ThinkPHP内置的调试手段和方法,抛开IDE本身自带的调试方式不说,如果你正在用或者打算用ThinkPHP开发的话,那么下面一些和调试Thinkphp程序相关的方法你是应该要了解和掌握的。

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

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

3、使用系统定义的dump函数,该方法同var_dump可以输出任何类型的变量信息,而且更加有利于在浏览器里面查看,例如:

$User=D("User"); 
$list=$User->findAll(); 3. 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)方法,例如: 1.debug_start(\’demo\’); 2. //这里是你的代码段

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

本文转载自: PHP程序员笔记

发表于
2014-06-02 20:50 
沉重的蚂蚱 
阅读(367
评论(0
编辑 
收藏 
举报

 

版权声明:本文为tswcypy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/tswcypy/p/3764661.html

【转】使用ThinkPHP必须掌握的调试方法 - 沉重的蚂蚱的更多相关文章

  1. [源码解析] 深度学习分布式训练框架 horovod (6) — 后台线程架构

    Horovod 是Uber于2017年发布的一个易于使用的高性能的分布式训练框架,在业界得到了广泛应用。本文是 […]...

  2. 深度学习(001)-深度学习简介 – 李明宽

    一,简介: 1.机器学习分支,人工神经网络(Artificial Neural Network, ANN)为基 […]...

  3. Java-函数式编程(三)流(Stream) – Java知音号

    Java-函数式编程(三)流(Stream) 流使程序猿可以在抽象层上对集合进行操作。 从外部迭代到内部迭代 […]...

  4. 跟着未名学Office – 高效笔记OneNote

    跟着未名学Office – 高效笔记 了解OneNote 2016年12月22日    19:57 […]...

  5. remote for Mac 苹果远程桌面设置 – 测试技术2021

    remote for Mac 苹果远程桌面设置 用惯Windows系统再用Mac大多数人总是少不了的按错键盘… […]...

  6. 一个轻量快速的C++日志库 – 小胖西瓜

    一个轻量快速的C++日志库 limlog 作一篇文章记录实现,驱动优化迭代。 代码仓库 用法 实现 后端实现 […]...

  7. linux,windows下检测指定的IP地址是否可用或者检测IP地址冲突的3种方式(批处理程序,python程序,linux shell 批量ping) – 我是某某某是我

    linux,windows下检测指定的IP地址是否可用或者检测IP地址冲突的3种方式(批处理程序,python […]...

  8. Alpha版本发布说明 – 远航1617

    Alpha版本发布说明 项目名称 Crawling is going on 项目版本 Alpha版本 负责人 […]...

随机推荐

  1. 如何写CRM需求——客户服务管理篇

    May 07, 2006 如何写CRM需求——客户服务管理篇 转载 CTI 论坛   在评估、选购CRM软件前 […]...

  2. 原创 记录一次线上Mysql慢查询问题排查过程

    背景 前段时间收到运维反馈,线上Mysql数据库凌晨时候出现慢查询的报警,并把原始sql发了过来: --去除了 […]...

  3. appnium(一)简介

    一、appium简介 1,appium是开源的移动端自动化测试框架; 2,appium可以测试原生的、混合的、 […]...

  4. 给初学编程的朋友一点建议,初级编程者

    1、编码习惯 习惯这个东西从小家长和老师就一直在给我们强调,而我们作为一个程序员最重要的东西我觉得就是编码习惯 […]...

  5. PJzhang:安全小课堂-安全软件为什么很重要,看这里!

    猫宁!!! 参考链接: http://www.360.cn/webzhuanti/mianyigongju.h […]...

  6. Java设计模式学习笔记(一) 设计模式概述

    前言 大约在一年前学习过一段时间的设计模式,但是当时自己的学习方式比较低效,也没有深刻的去理解、运用所学的知识 […]...

  7. [CSS]属性选择器

    属性选择器更加简单且灵活地去匹配元素,匹配规则类似于正则表达式,可以匹配一个元素的属性,或者属性的值。 前言 […]...

  8. spring boot mybatis多多数据源解决方法

    spring boot mybatis多多数据源解决方法 2019-10-31 22:38 全me村的希望 阅 […]...

展开目录

目录导航