ThinkPHP 內建多層次除錯工具,善用可大幅提升開發效率。以下為 6 大核心除錯手段。
<?php
// 專案設定檔 Conf/config.php
return [
'DEBUG_MODE' => true, // 或常數定義 define('DEBUG_MODE', true);
];
除錯模式預設開啟 Trace,但可單獨控制:
<?php
// 專案設定檔
'SHOW_PAGE_TRACE' => true, // 顯示頁面 Trace
'TRACE_PAGE_TABS' => ['base','file','think','error','sql','debug','user'], // 顯示分頁
SHOW_PAGE_TRACE 即可。<?php
$User = D('User');
$list = $User->findAll();
dump($list); // 類似 var_dump 但格式化、可摺疊、顏色區分,瀏覽器友善
<?php
// 設定檔
'SQL_DEBUG_LOG' => true, // 開啟 SQL 日誌
// 日誌檔案位於 Runtime/Logs/ 目錄,按日期自動分檔 (如 2023_10_15.sql.log)
<?php
$User = D('User');
$User->id = 3;
$User->name = 'ThinkPHP';
$User->save();
echo $User->getLastSql();
// 輸出: UPDATE think_user SET name='ThinkPHP' WHERE id=3
<?php
debug_start('my_label');
// 要測量的程式碼區段
$list = $User->findAll();
foreach ($list as $item) { /* ... */ }
debug_end('my_label');
// 頁面 Trace 的 debug 分頁會顯示 my_label 的耗時
DEBUG_MODE、SHOW_PAGE_TRACE、SQL_DEBUG_LOG。Conf/debug.php 覆蓋預設行為,區分開發/測試/生產環境。