一開始開發php程式的時候,不會使用x-debug 所有的錯誤訊息都是使用var_dump()或者print_r()。 雖然這樣日子也是能過,不過這樣實在太不smart了。
最近才搞懂怎麼用x-debug。 所以就寫篇教學。
概念
- x-debug是php的一個套件。
- x-debug監控php ,當遇到斷點或者錯誤時,會對某個port(預設9003)發出通知。 知道這兩個概念後,就可以用x-debug了。
安裝
php
先打指令
php -i
把所有顯示的東西都複製 貼到
https://xdebug.org/wizard
裡面,他會幫你列出該做什麼來安裝x-debug。 照著做就行了。
vscode
安裝套件: PHP Debug 安裝好後,你會在左邊的功能分頁看到xdebug的圖案
點進去會像這樣
點選上方的齒輪,產生Listen for Xdebug
你會看到產生設定檔。接著,再點選單左邊的 綠色三角形。 你的vscode就會開始listen本機的9003 port。
如果出現這個就是在Listen了
接著,設定斷點 在程式碼左邊任一行都可以設定中斷點,滑鼠直接點下去就行。
設定中斷點之後,執行這一段程式碼,無論是用postman 或者web也好,甚至伺服器開放給其他端點來打也行。只要執行到這邊,vscode就會跳出來,並且顯示當下的各項變數的內容。
像這樣debug是很方便的。 如果要繼續執行,就在 這裡操作。
如果都不操作,那麼程式會一直卡在這裡,執行這段程式碼的客戶端(web或者postman或者其他東西)就會遲遲得不到回應,如果有timeout機制就會timeout。
最右邊是關閉listening,左2是重新啟動。最左邊是執行到下一個斷點或者excetpion,中間無論按哪一個都會繼續執行,只是跳過的程度不同而已。
結論
使用xdebug之後,php工程師會更加快樂。不用擔心print的程式碼會造成bug或者廢code忘記刪掉,也可以一次看到各種變數狀況。其他還有更加進階的功能,比方說可以跳到call stack的程式碼等等,有了xdebug,你的生活會變得容易得多。就像要爬十層樓,本來都要走樓梯。雖然走樓梯也會到,但給了電梯大家一定都搭電梯一樣。