PHP实战PHP经验分享

Thinkphp调试

2017-10-12  本文已影响0人  gogocheng

Thinkphp调试主要有以下四种方法

(一).跟踪信息

(二).两种模式

(三).sql调试

(四).性能调试

下面就来一一介绍:

1.跟踪信息(SHOW_PAGE_TRACE)

跟踪信息需要在当前模块中设置,在主配置文件中不存在,默认是关闭(false),使用时要开启(true);

开启之后运行程序就会有跟踪信息在页面下面出现跟踪信息

点击这个小图标就会显示更多的信息,框架加载的时间以及加载的文件等一目了然。

2.两种模式(APP_DEBUG)

所谓两种模式,就是指开发(调试)模式和生产模式。

开发模式:在开发调试阶段使用。

生产模式:在项目上线时使用。

在入口文件中开启APP_DEBUG

开启APP_DEBUG后,跟踪信息如下

关闭APP_DEBUG,跟踪信息如下

可以看到,在开启APP_DEBUG后,程序的执行时间大幅度降低,但是内开销和文件的加载数目要比关闭APP_DEBUG时多一点。

总结:生产模式下文件的加载数会变小,系统函数库不会加载,系统的配置文件,应用配置文件不会加载,但是会多一个缓存文件,没有加载的

文件都会放在这个缓存文件中。生产模式下使用缓存文件,效率上要比调试模式高。如果在生产模式下修改配置文件,应用配置文件,系统函数

库都不会生效,,因为在生产模式中上述文件没有加载。如果想让它生效,可以删除缓存文件或者开启APP_DEBUG去修改,完成后换回生产模

式。

3.sql调试

Thinkphp在执行CURD操作是让开发者写方法,并不是很直观的展现sql。使用

获取最后一条执行成功的sql语句。在3.2版本之后,getlastsql()可以写成_sql

4.性能调试

G()方法:

语法:

G('begin','end') 表示统计begin位置到end位置的执行时间(单位是秒),begin必须是一个已经标记过的位置,如果这个时候end位置还没被标记

过,则会自动把当前位置标记为end标签,输出的结果类似于:0.0056s

手册也有说明,如下图

上一篇下一篇

猜你喜欢

热点阅读