本篇我們來全面瞭解下如何在ThinkPHPHTTP://www.aliyun.com/zixun/aggregation/17799.html">開發過程中進行調試工作。
偵錯模式
說到調試,我們可能第一個想到的就是偵錯模式,沒錯,ThinkPHP也有專門為開發過程而設置的偵錯模式,ThinkPHP的偵錯模式與眾不同,會犧牲一定的執行效率,但帶來的方便和除錯功能非常值得。 我們強烈建議ThinkPHP開發人員在開發階段始終開啟偵錯模式(直到正式部署後關閉偵錯模式),方便及時發現隱患問題和分析、解決問題。
開啟偵錯模式很簡單,只需要在入口檔中增加一行常量定義代碼:
<?php //開啟偵錯模式 define('APP_DEBUG', true); 載入框架入口檔 require './ThinkPHP/ThinkPHP.php';
在完成開發階段部署到生產環境後,只需要刪除偵錯模式定義代碼即可切換到部署模式。 偵錯模式的優勢在於: 開啟日誌記錄,任何錯誤資訊和調試資訊都會詳細記錄,便於調試;
關閉範本緩存,範本修改可以即時生效; 記錄SQL日誌,方便分析SQL; 關閉欄位緩存,資料表欄位修改不受緩存影響; 嚴格檢查檔案大小寫(即使是Windows平臺),説明你提前發現Linux部署問題; 可以方便用於開發過程的不同階段,包括開發、測試和演示等任何需要的情況,不同的應用模式可以配置獨立的專案設定檔;
在開啟偵錯模式的狀態下,我們可以給專案設置不同的應用狀態,並載入不同的專案設定檔,但是無論如何,都會首先導入框架預設的偵錯模式設定檔,該檔位於系統目錄的Conf\debug.php。
通常情況下,調試設定檔裡面可以進行一些開發模式所需要的配置。 例如,配置額外的資料庫連接用於調試,開啟日誌寫入便於查找錯誤資訊、開啟頁面Trace輸出更多的調試資訊等等。
如果沒有配置應用狀態,系統預設則預設為debug狀態,也就是說預設的配置參數是:
'APP_STATUS' => 'debug', //應用偵錯模式狀態
如果檢測到專案的配置目錄中有存在debug.php檔,則會自動載入該設定檔,並且和系統專案設定檔以及系統調試設定檔合併,也就是說,debug.php設定檔只需要配置和專案設定檔以及系統調試設定檔不同的參數或者新增的參數。 如果想在偵錯模式下面增加應用狀態,例如測試狀態,則可以在專案設定檔中改變設置如下:
'APP_STATUS' => 'test', //應用偵錯模式狀態
這樣的話,系統會自動嘗試載入專案配置目錄下面的test.php 設定檔,可以在test設定檔中改變相關設置,例如改變測試資料庫的連接資訊等等。
由於偵錯模式沒有任何緩存,因此涉及到較多的檔IO操作和範本即時編譯,所以在開啟偵錯模式的情況下,性能會有一定的下降,但不會影響部署模式的性能。 另外需要注意的是,一旦關閉偵錯模式,專案的調試設定檔即刻失效。