用過Java、C#等靜態(tài)語言的同學(xué)調(diào)試代碼經(jīng)常是打個斷點,然后輕松調(diào)試,而PHPer調(diào)試代碼時經(jīng)常是
echo $a;exit;
非常的不方便,有的同學(xué)有時候打完斷點沒刪就給commit上去了,這就造成了很多困擾,有沒有辦法更優(yōu)雅的調(diào)試呢?那當(dāng)然有的,這里用到一個PHP模塊xdebug,xdebug安裝教程,使用它進行PHP代碼調(diào)試,能有效減少工作量和BUG調(diào)試時間,特別是在某些復(fù)雜的程序中,光靠看都無法找出問題
相關(guān)學(xué)習(xí)推薦:phpstrom使用教程
xdebug是一個開放源代碼的php程序調(diào)試器(即一個debug工具),可以用來跟蹤,調(diào)試和分析php程序的運行狀況。
- 如果是集成環(huán)境,比如phpstudy,就不需要自己安裝了,直接環(huán)境->PHP->設(shè)置(PHP版本號別搞混了)
- 這里設(shè)置下端口號,憑自己喜好就行,我設(shè)置了9001
- 查看phpinfo,搜索下,有xdebug模塊就行了
接下來打開phpstorm,ctrl+alt+s打開設(shè)置
來到debug設(shè)置,將端口改成前面你設(shè)置的端口號(其他默認即可,當(dāng)然也可以開啟,看不懂英文可以翻譯一下)
在點開Servers,點+號新建一個,名字隨意,Host填自己要Debug的域名(比如localhost,我這里填了一個虛擬域名),端口號默認80即可
然后右上角有一個Edit Configurations,點擊打開
點擊加號,添加一個PHP Web Page
name隨意,Server選剛才你配置的,startUrl是啟動的接口地址,如果我要debug一個下單的接口,于是我把他填寫了進去,然后點擊箭頭所指向的Validate
第一個選項是調(diào)試本地的,第二個是調(diào)試遠程的,我這里遠程不講了,免得搞暈?zāi)銈?/h3>
第一個輸入框填寫自己的項目目錄,因為我這個是tinkphp框架,我把他指向了項目目錄的public目錄
第二個填寫自己的域名,這里編輯器自動幫忙填寫了
點擊Validate按鈕,phpstorm會幫忙檢測配置是否正確,如果有錯請按照提示修改
最后點擊右上角的這只臭蟲,會自動打開瀏覽器進行調(diào)試,臭蟲旁邊的電話機如果變綠了表示正在監(jiān)聽9001端口
這時phpstorm會自動打開debug控制臺,點擊箭頭自動下一步,左邊點擊紅點可以打斷點
如果想用postman呢?
把這個參數(shù)拿過來
把這對key-vlue加入postman的參數(shù)內(nèi),點擊send自動開啟調(diào)試(postman會一直處于發(fā)送狀態(tài)中,直至斷點調(diào)試完畢)
我寫的教程希望以最簡短的步驟讓讀者能運行起xdebug,某些細節(jié)方面就忽略了,有興趣的同學(xué)可以去網(wǎng)上查找更詳細的配置和說明(當(dāng)然沒興趣)
debug控制臺簡單說明
- 左邊可以打斷點,當(dāng)代碼執(zhí)行到斷點時會停止
- 這個按鈕點一下,會執(zhí)行一行代碼,但遇到函數(shù)會直接執(zhí)行整個函數(shù)
- 這個按鈕也是執(zhí)行一行代碼,可以進入函數(shù)內(nèi)部執(zhí)行
- 跳到下一個斷點
- 第一個頁面可以很清晰的查看所有變量
- 第二個頁面可以打印變量,甚至可以執(zhí)行對象函數(shù)方法(賊有用)
- 第三個頁面是查看輸出
問題總結(jié)
- 斷點調(diào)試時,PHP腳本執(zhí)行超時后Apache自動斷開連接,然后返回一個500錯誤
在apache的http.conf文件加入
FcgidIOTimeout 600
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END