許多開發者在使用 ThinkPHP 時,面對資料型態不確定、錯誤原因不明等問題,往往是因不熟悉框架內建的除錯工具。本文整理 6 個核心除錯技巧,助你快速定位問題、提升開發效率。
在專案設定檔中開啟 DEBUG_MODE,可顯示大部分錯誤資訊。注意:可能影響驗證碼輸出,正式環境建議關閉。
常見誤區:以為開啟除錯模式必然顯示 Trace。實際上兩者無必然關聯,可單獨定義除錯設定檔,只開啟 Trace 而不啟用完整除錯模式。
dump() 功能類似 var_dump(),但輸出格式更友善,支援瀏覽器摺疊查看。範例:
$User = D("User");
$list = $User->findAll();
dump($list);
頁面 Trace 僅顯示當前頁面 SQL,無法記錄 AJAX 後台操作。開啟 SQL_DEBUG_LOG 後,所有 SQL 執行語句與耗時將記錄於 Logs/ 目錄下,按日期自動分檔。
懷疑資料操作有誤時,可呼叫模型的 getLastSql() 方法:
$User = D("User");
$User->id = 3;
$User->name = 'ThinkPHP';
$User->save();
echo $User->getLastSql();
// 輸出:UPDATE think_user SET name='ThinkPHP' WHERE id=3
測量特定程式碼區塊執行時間:
debug_start('demo');
// 程式碼區塊...
debug_end('demo');
善用這 6 大除錯技巧,能大幅縮短問題排查時間,讓 ThinkPHP 開發更得心應手。