ThinkPHP有专门为开发过程而设置的调试模式 开启调试模式后 会牺牲一定的执行效率 但带来的方便和除错功能非常值得。

强烈建议在开发阶段始终开启调试模式(直到正式部署后关闭调试模式) 方便及时发现隐患问题和分析、解决问题。

应用默认是部署模式 在开发阶段 可以修改应用配置文件app.php中的app_debug参数(或环境变量APP_DEBUG)开启调试模式 上线部署后切换到部署模式。

// 开启调试模式
'app_debug' => true,

在模块配置文件中设置调试模式无效

除此之外 还可以在应用根目录下面定义.env文件 并且定义APP_DEBUG环境变量参数 这样便于在部署环境中设置环境变量来开启和关闭调试模式。

.env文件的定义格式如下:

// 设置开启调试模式
APP_DEBUG =  true
// 其它的环境变量设置
// ...

定义了.env文件后 配置文件中定义app_debug参数无效。

调试模式的优势在于:

  • 开启日志记录 任何错误信息和调试信息都会详细记录 便于调试;
  • 会详细记录整个执行过程;
  • 模板修改可以即时生效;
  • 记录SQL日志 方便分析SQL;
  • 通过Trace功能更好的调试和发现错误;
  • 发生异常的时候会显示详细的异常信息;

由于调试模式没有任何缓存 因此涉及到较多的文件IO操作和模板实时编译 所以在开启调试模式的情况下 性能会有一定的下降 但不会影响部署模式的性能。

一旦关闭调试模式 发生错误后不会提示具体的错误信息 如果你仍然希望看到具体的错误信息 那么可以在app.php文件中如下设置:

// 显示错误信息
'show_error_msg'        =>  true,