1. 如何开启调试模式
只需要在项目入口文件(一般为index.php)中增加一行常量定义代码:
define('APP_DEBUG', true);
在完成开发阶段部署到生产环境后,只需要关闭调试模式或者删除调试模式定义代码即可切换到部署模式。如下:
define('APP_DEBUG', false);2. 调试模式的作用
- 开启日志记录,任何错误信息和调试信息都会详细记录,便于调试;
- 关闭模板缓存,模板修改可以即时生效;
- 记录SQL日志,方便分析SQL;
- 关闭字段缓存,数据表字段修改就可立即生效;
- 严格检查文件大小写(即使是Windows平台),帮助你提前发现Linux部署可能导致的隐患问题;
- 通过页面Trace功能更好的调试和发现错误;
- 显示具体的错误信息;
在开启调试模式的状态下,系统会首先导入框架默认的调试模式配置文件,该文件位于系统目录的
Conf\debug.php
。
通常情况下,调试配置文件里面可以进行一些开发模式所需要的配置。例如,配置额外的数据库连接用于调试,开启日志写入便于查找错误信息、开启页面Trace输出更多的调试信息等等。
如果检测到应用的配置目录中有存在debug.php文件,则会自动加载该配置文件,并且和系统项目配置文件以及系统调试配置文件合并,也就是说,debug.php配置文件只需要配置和项目配置文件以及系统调试配置文件不同的参数或者新增的参数。
由于调试模式没有任何缓存,因此涉及到较多的文件IO操作和模板实时编译,所以在开启调试模式的情况下,性能会有一定的下降,但不会影响部署模式的性能。另外需要注意的是,一旦关闭调试模式,项目的调试配置文件即刻失效。
一旦关闭调试模式,发生错误后不会提示具体的错误信息,如果你仍然希望看到具体的错误信息,那么可以如下设置:
'SHOW_ERROR_MSG' => true, // 显示错误信息
3. 什么时候需要开启调试模式?
项目开发阶段(开发模式),一般会开启调试模式,便于快速开发和项目调试。
项目开发阶段,为了保证开发的高效性,开启调试模式(true),缓存就会关闭,不会产生缓存文件(Runtime目录中的文件),这样,修改配置文件和数据表后,所做的更改就会立即生效。而不用刻意去删除Runtime目录,直接刷新页面,即可展现出修改后的效果。调试模式开启的情况下,还会显示TP自带的错误提示信息,便于开发者快速定位错误。
4. 什么时候需要关闭调试模式?
项目上线后(部署到生产环境,部署模式),为了更好的用户体验,需要关闭调试模式。
调试模式默认是关闭的,这种情况下,Runtime目录会对模板文件、数据表字段等进行缓存,修改配置文件或数据表后,所做的更改不会立即生效(刷新页面后没有任何反应),此时,我们只需手动删除Runtime目录,再来刷新页面,所做的更改就会生效。
注意:部署模式下,由于关闭了调试模式,如果修改了配置文件或数据表,或者修改了其他的代码,都有可能导致某些奇怪的错误,此时,我们只需手动删除Runtime目录,再来重新请求,一般都会恢复正常。(这类错误都是由
ThinkPHP的运行缓存导致的)