close

一開始開發php程式的時候,不會使用x-debug 所有的錯誤訊息都是使用var_dump()或者print_r()。 雖然這樣日子也是能過,不過這樣實在太不smart了。

最近才搞懂怎麼用x-debug。 所以就寫篇教學。

概念

  1. x-debug是php的一個套件。
  2. x-debug監控php ,當遇到斷點或者錯誤時,會對某個port(預設9003)發出通知。 知道這兩個概念後,就可以用x-debug了。

安裝

php

先打指令

php -i

把所有顯示的東西都複製 貼到

https://xdebug.org/wizard

裡面,他會幫你列出該做什麼來安裝x-debug。 照著做就行了。

vscode

安裝套件: PHP Debug 安裝好後,你會在左邊的功能分頁看到xdebug的圖案

使用x-debug 和vscod做開發

點進去會像這樣

使用x-debug 和vscod做開發

點選上方的齒輪,產生Listen for Xdebug

使用x-debug 和vscod做開發

 

你會看到產生設定檔。接著,再點選單左邊的 綠色三角形。 你的vscode就會開始listen本機的9003 port。

使用x-debug 和vscod做開發

如果出現這個就是在Listen了

使用x-debug 和vscod做開發

 

接著,設定斷點 在程式碼左邊任一行都可以設定中斷點,滑鼠直接點下去就行。

使用x-debug 和vscod做開發

 

設定中斷點之後,執行這一段程式碼,無論是用postman 或者web也好,甚至伺服器開放給其他端點來打也行。只要執行到這邊,vscode就會跳出來,並且顯示當下的各項變數的內容。

使用x-debug 和vscod做開發

像這樣debug是很方便的。 如果要繼續執行,就在 這裡操作。

使用x-debug 和vscod做開發

如果都不操作,那麼程式會一直卡在這裡,執行這段程式碼的客戶端(web或者postman或者其他東西)就會遲遲得不到回應,如果有timeout機制就會timeout。

最右邊是關閉listening,左2是重新啟動。最左邊是執行到下一個斷點或者excetpion,中間無論按哪一個都會繼續執行,只是跳過的程度不同而已。

結論

使用xdebug之後,php工程師會更加快樂。不用擔心print的程式碼會造成bug或者廢code忘記刪掉,也可以一次看到各種變數狀況。其他還有更加進階的功能,比方說可以跳到call stack的程式碼等等,有了xdebug,你的生活會變得容易得多。就像要爬十層樓,本來都要走樓梯。雖然走樓梯也會到,但給了電梯大家一定都搭電梯一樣。

arrow
arrow
    文章標籤
    程式
    全站熱搜

    工程師黑田 發表在 痞客邦 留言(0) 人氣()