常用偵錯方式
#透過瀏覽器列印資訊進行偵錯
方法
在程式碼中加入echo、var_dump、print_r 和exit,在瀏覽器中查看輸出。
優缺點
優點:
簡單,使用方便,不用安裝外掛程式(建議學習:PHP程式設計從入門到精通)
對於自己寫的程式碼,或比較熟悉的框架,可以這麼用
缺點:
#對於多分支邏輯,需要加很多程式碼或嘗試多次
對於不熟悉的邏輯,無法反映完整的執行流程。
有可能將偵錯語句遺漏在專案中
無法單步執行
#偵錯時,為了格式化輸出變量,往往需要在專案中實作自己的 dump( ) 函數。利用 Composer,可以全域安裝 symfony/var-dumper 包中的 dump() 函數,使所有項目都可以使用,而無需改動項目。
使用Xdebug 進行調試
XDebug 是C/S 結構,其中Client 是PHP 中安裝的Xdebug,Server 是IDE 中安裝的插件,使用DBGP 協定通信。 PHP 執行腳本時,透過 Xdebug 插件向 IDE 發送偵錯訊息,並接收 IDE 發送過來的控制訊號。
需要為 PHP 安裝並開啟 Xdebug,然後設定 IDE 的 Xdebug 插件,讓二者可以通訊。
優缺點
支援單步調試和任意變數值的獲取
配置複雜,需要IDE 安裝插件
支持跟瀏覽器的配合,需要請求中攜帶XDEBUG_SESSION_START 參數
透過console 終端進行調試(CLI 方式)
對於非web 應用,例如定時任務或單元測試,可以直接在控制台進行調試。
PhpStorm 中透過 Alt F12 快速鍵開啟命令列終端。但因為 IDE 中只能顯示一個終端,在開啟偵錯後的偵錯終端會覆蓋命令列終端,所以還是單獨開立命令列終端吧(Windows 下可以使用 DOS 視窗或 PowerShell)。
方法及原理
web 應用程式透過GET/POST/Cookie 參數標誌偵錯請求,而非web 應用則透過在命令列終端設定環境變數來開啟偵錯。
兩步驟:
設定環境變數 XDEBUG_CONFIG="idekey=session_name",這個 idekey 需要跟 php.ini 中 Xdebug 部分設定的 idekey 一樣。
在命令列終端機執行腳本。執行時會喚起 IDE 的 debug 終端,可以單步調試,輸出結果即時顯示在命令列終端
以上是如何調試php網站的詳細內容。更多資訊請關注PHP中文網其他相關文章!