1.1 debug模式開啟
啟除錯模式很簡單,只需要在入口檔案中增加一行常量定義**:
在完成開發階段部署到生產環境後,只需要刪除除錯模式定義**即可切換到部署模式。開啟除錯模式後,系統會首先載入系統預設的除錯配置檔案,然後載入專案的除錯配置檔案,除錯模式的優勢在於:
1.2 debug模式下常用引數
showpagetrace行為配置
show_page_trace 顯示頁面trace資訊 false
showruntime行為配置
show_run_time 是否顯示執行時間 false
show_adv_time 是否顯示詳細的執行時間 false
show_db_times 是否顯示資料庫查詢和寫入次數 false
show_cache_times 是否顯示快取操作次數 false
show_use_mem 是否顯示記憶體開銷 false
show_load_file 是否顯示載入檔案數 false
show_fun_times 是否顯示函式呼叫次數 false
1.3 debug模式下的日誌級別
thinkphp對系統的日誌按照級別來分類,包括:emerg 嚴重錯誤,導致系統崩潰無法使用
alert 警戒性錯誤, 必須被立即修改的錯誤
crit 臨界值錯誤, 超過臨界值的錯誤
err 一般性錯誤
warn 警告性錯誤, 需要發出警告的錯誤
notice 通知,程式可以執行但是還不夠完美的錯誤
info 資訊,程式輸出資訊
debug 除錯,用於除錯資訊
sql sql語句,該級別只在除錯模式開啟時有效
要開啟日誌記錄,必須在配置中開啟log_record引數,以及可以在專案配置檔案中配置需要記錄的日誌級別,例如:
'log_record' => true, // 開啟日誌記錄
'log_level' =>'emerg,alert,crit,err', // 只記錄emerg alert crit err 錯誤
1.4 trace資訊
如果沒有配置應用狀態,系統預設則預設為debug狀態,也就是說預設的配置引數是:
如果檢測到專案的配置目錄中有存在debug.php檔案,則會自動載入該配置檔案,並且和系統專案配置檔案以及系統除錯配置檔案合併,也就是說,debug.php配置檔案只需要配置和專案配置檔案以及系統除錯配置檔案不同的引數或者新增的引數。
如果想在除錯模式下面增加應用狀態,例如測試狀態,則可以在專案配置檔案中改變設定如下:
這樣的話,系統會自動嘗試載入專案配置目錄下面的test.php 配置檔案,可以在test配置檔案中改變相關設定,例如改變測試資料庫的連線資訊等等。
由於除錯模式沒有任何快取,因此涉及到較多的檔案io操作和模板實時編譯,所以在開啟除錯模式的情況下,效能會有一定的下降,但不會影響部署模式的效能。
注意:一旦關閉除錯模式,專案的除錯配置檔案即刻失效。
2 自定義debug模式(除錯配置)
新版增強了除錯模式的配置檔案,在開啟除錯模式的狀態下,可以給專案設定不同的應用狀態,並載入不同的專案配置檔案,但是無論如何,都會首先匯入框架預設的除錯模式配置檔案,該檔案位於系統目錄的conf\debug.php。
通常情況下,除錯配置檔案裡面可以進行一些開發模式所需要的配置。例如,配置額外的資料庫連線用於除錯,開啟日誌寫入便於查詢錯誤資訊、開啟頁面trace輸出更多的除錯資訊等等。
注意:3.0版本的除錯模式預設沒有開啟執行時間顯示和頁面trace顯示,需要自行開啟,並且建議除錯模式只開啟頁面trace即可,新版的頁面trace顯示資訊已經包含了執行時間顯示。
如果沒有配置應用狀態,系統預設則預設為debug狀態,也就是說預設的配置引數是:
如果檢測到專案的配置目錄中有存在debug.php檔案,則會自動載入該配置檔案,並且和系統專案配置檔案以及系統除錯配置檔案合併,也就是說,debug.php配置檔案只需要配置和專案配置檔案以及系統除錯配置檔案不同的引數或者新增的引數。
如果想在除錯模式下面增加應用狀態,例如測試狀態,則可以在專案配置檔案中改變設定如下:
這樣的話,系統會自動嘗試載入專案配置目錄下面的test.php 配置檔案,可以在test配置檔案中改變相關設定,例如改變測試資料庫的連線資訊等等。
由於除錯模式沒有任何快取,因此涉及到較多的檔案io操作和模板實時編譯,所以在開啟除錯模式的情況下,效能會有一定的下降,但不會影響部署模式的效能。
注意:一旦關閉除錯模式,專案的除錯配置檔案即刻失效。
3.1 空模組
空模組的概念是指當系統找不到指定的模組名稱的時候,系統會嘗試定位空模組(emptyaction),利用這個機制我們可以用來定製錯誤頁面和進行url的優化。
現在我們把前面的需求進一步,把url由原來的
變成http://servername/index.php/shanghai/
這樣更加簡單的方式,如果按照傳統的模式,我們必須給每個城市定義乙個action類,然後在每個action類的index方法裡面進行處理。 可是如果使用空模組功能,這個問題就可以迎刃而解了。 我們可以給專案定義乙個emptyaction類
<?phpclass emptyaction extends action
//注意 city方法 本身是 protected 方法
protected function city($name)
}
接下來,我們就可以在瀏覽器裡面輸入
由於系統並不存在beijing、shanghai或者shenzhen模組,因此會定位到空模組(emptyaction)去執行
空模組和空操作還可以同時使用,用以完成更加複雜的操作。
3.2 空操作
空操作是指系統在找不到指定的操作方法的時候,會定位到空操作(_empty)方法來執行,利用這個機制,我們可以實現錯誤頁面和一些url的優化。
例如,下面我們用空操作功能來實現乙個城市切換的功能。
我們只需要給cityaction類定義乙個_empty (空操作)方法:
<?php
class cityaction extends action{
public function _empty($name){
//把所有城市的操作解析到city方法
$this->city($name);
//注意 city方法 本身是 protected 方法
protected function city($name){
//和$name這個城市相關的處理
echo '當前城市' . $name;
接下來,我們就可以在瀏覽器裡面輸入
由於cityaction並沒有定義beijing、shanghai或者shenzhen操作方法,因此系統會定位到空操作方法 _empty中去解析,_empty方法的引數就是當前url裡面的操作名,因此會看到依次輸出的結果是:
當前城市:beijing
當前城市:shanghai
當前城市:shenzhen
除錯工具 之Python除錯工具pycharm
1 pycharm的安裝 pycharm是一款非常好用的python ide,提供專業版和社群版,就像eclipse和myeclipse一樣,專業版是收費的,而社群版是免費的但功能就沒有專業版的功能強大。1.2 安裝 這裡就不必細說,直接next就ok ps 安裝完成後一定要執行 1.3 破解 採用...
Android 除錯工具及方法(二)
裝置上除錯和測試的設定 android提供了眾多的設定使你可以更容易的除錯和測試程式.要進入開發設定頁面,在模擬器中轉到dev tools development settings.在該設定頁面有以下選項 在除錯的時候,如果你在乙個斷點處暫停了過長的時間,這個設定會防止android丟擲乙個錯誤 這...
OLED字模及串列埠除錯工具
oled 顯示屏,其特點是顯示亮度高,不需要背光,耗電低,介面簡單 i2c,spi 等 僅占用mcu 少量資源,體積小巧,外觀時尚,因此在日常電子產品中應用非常廣泛。但是很多任務程師,遇到顯示錯誤時,不知道是軟體問題,還是oled有問題,甚至不知道該從 著手去解決問題。那有沒有辦法不用字型檔晶元就可...