首页 理论教育开启调试功能,实战PHPMVC

开启调试功能,实战PHPMVC

【摘要】:调试功能是ThinkPHP内置的一项重要的代码调试机制。ThinkPHP本身内置有代码调试功能,开发人员只需要在入口文件中开启即可。为了方便开发者了解每个页面的运行情况,系统还提供了Trace信息显示功能。图8-8 调试异常信息2.Trace异常信息Trace异常信息默认是关闭的,它是前面介绍的异常数据显示的子类。

调试功能是ThinkPHP内置的一项重要的代码调试机制。由于MVC框架是由众多PHP类库构造的,它改变了许多传统PHP开发的模式,例如数据库操作、文件包含、代码执行流程等,在开发过程中要对代码进行调试,使用传统的PHP来调试,只能调试当前PHP代码,但不能调试由框架引起的异常。所以几乎所有主流的MVC框架都提供代码异常处理机制,即代码调试机制。ThinkPHP本身内置有代码调试功能,开发人员只需要在入口文件中开启即可。为了方便开发者了解每个页面的运行情况,系统还提供了Trace信息显示功能。下面分别介绍。

1.调试模式

一旦开启调试模式,代码的执行步骤将会发生改变,这种改变是利于代码调试的,但对运行结果没有影响。要启动代码调试功能,设置常量APP_DEBUG为true即可,如以下代码所示。

978-7-111-42852-7-Part02-357.jpg

一旦开启代码调试模式,系统会在出现异常的动作视图模板中追加调试数据,如图8-8所示。

这些异常信息根据异常的情况而有所不同,并且是可以进行定制显示的。但需要注意的是调试模式只有异常时才会抛出调试信息。

978-7-111-42852-7-Part02-358.jpg

图8-8 调试异常信息

2.Trace异常信息

Trace异常信息默认是关闭的,它是前面介绍的异常数据显示的子类。Trace信息是可定制的,可以在任何运行阶段抛出,事实上Trace可以在任何动作视图上随时显示。(www.chuimin.cn)

要开启Trace页面信息,只需要在配置文件中设置SHOW_PAGE_TRACE为true即可。需要注意的是Trace信息需要结合模板使用,也就是说动作中必须使用$thin->display()输出,如图8-9所示。

978-7-111-42852-7-Part02-359.jpg

图8-9 Trace页面信息

Trace信息中详细地列出了当前页面所运行的时间、状态、内存占用、会话ID、请求协议以及页面所有调用的类库等,这对于代码的调试及优化是非常有用的。

对于Trace的运行时间、状态、内存占用等信息,是可以单独提取出来的。如果结合前面介绍的基于消息队列的日志系统,那么还可以将运行超时的页面推送到消息队列中,方便开发人员查看并优化。如以下配置文件代码所示。

978-7-111-42852-7-Part02-360.jpg

上述配置信息将会显示当前动作运行时间、数据库操作、内存占用等信息,读者可以根据需要选择开启。最终的结果将会在页面底部呈现(不管页面是否存在异常),如图8-10所示。

978-7-111-42852-7-Part02-361.jpg

图8-10 页面运行状态