ThinkPHP 3.x 開發階段強烈建議開啟調試模式,可自動關閉模板緩存、字段緩存、記錄 SQL 日誌等,大幅提升調試效率。本文詳細說明開啟方法與帶來的具體優勢。
在入口文件(通常是 index.php)中定義常量:
<?php
require './ThinkPHP/ThinkPHP.php';
define('APP_DEBUG', 1); // 開啟調試模式
?>
部署生產環境時,**刪除或註釋該行** 即可切換到部署模式(生產模式)。
| 功能 | 說明 | 開發價值 |
|---|---|---|
| 開啟日誌記錄 | 所有錯誤、SQL、調試信息詳細寫入日誌文件 | 快速定位 Bug、分析性能瓶頸 |
| 關閉模板緩存 | 模板修改即時生效,無需手動清理 Runtime 目錄 | 前端聯調極其高效 |
| 記錄 SQL 日誌 | 每條 SQL 執行時間、影響行數、綁定參數完整記錄 | 優化慢查詢、驗證 ORM 生成語句 |
| 關閉字段緩存 | 數據表結構變更(增減欄位)即時生效 | 避免字段緩存導致「字段不存在」誤報 |
| 嚴格大小寫檢查 | 即使 Windows 也強制區分文件大小寫 | 提前發現 Linux 部署時的大小寫問題 |
| 應用模式支持 | 可配置開發/測試/演示等獨立配置文件 | 多環境配置隔離管理 |
Conf/config.php 設置 'APP_DEBUG' => true,3.x 統一改為入口文件常量定義Runtime/Logs 目錄創建 Conf/debug.php 覆蓋默認調試配置:
<?php
return array(
'LOG_RECORD' => true,
'LOG_LEVEL' => 'EMERG,ALERT,CRIT,ERR,WARN,NOTICE,INFO,DEBUG,SQL',
'TMPL_CACHE_ON' => false,
'DB_FIELDS_CACHE' => false,
'HTML_CACHE_ON' => false,
);
?>
掌握調試模式是 ThinkPHP 開發者的必修課,善用日誌與 SQL 記錄能讓排錯效率提升數倍。