[Xdebug]
zend_extension = php_xdebug.dll
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
不需要設置dbgp,這個用于遠程調試,最重要的就是一個xdebug.client_port=9003,這個端口默認是9003,其實也可以不寫這句話,client_host 默認是localhost
只需要配置一個地方,那就是xdebug的調試端口設置為上面ini中寫的client_port即可,如果上面沒有寫client_port,這里就寫9003
xdebug下面的4個復選框可以都不勾選,如果勾選了中間的2個,你會發(fā)現(xiàn),每次都會在框架的入口處停下,這個是相當不友好的。
下面這個dbgp可以不管,這個用于遠程調試的,就是代碼不在本地,調試linux上的代碼時需要配置的,這里先不管
PHP解釋器需要安裝xdebug,安裝具體教程可以搜索,就是下載一個xdebug.dll的文件,配置到ini中,這里不具體說明
PHP安裝完xdebug后,需要在CLI解釋器中添加PHP,并一定一定要看到下面圖中自動解析出xdebug的版本,如下圖為xdebug 3.0.4
配置好后,調試時,先點擊開始調試開關,變綠色后,再點調試,如下圖
如果ini配置中的port更改的話,需要先斷開,重新關閉再開啟綠色開關后,再啟動調試按鈕。
在需要調試的行上打上斷點,如下圖
你會發(fā)現(xiàn),這個點是紅色的,此時一定要注意,這個斷點沒有生效,沒有生效,需要點擊調試按鈕,重新啟動調試,或者,你在調試開始之前就先打上斷點。點擊調試按鈕后,斷點變?yōu)橄聢D。
可以看到,斷點變綠了,這個時候,斷點才真正的生效了。
請求接口,可以看到如下圖:
恭喜你,成功了,簡單吧。為你自己鼓掌。
雖然調試成功了,但如果使用久了話,你會發(fā)現(xiàn),當點擊右上角紅色中斷調試時,任務管理器中還是沒有停止這個進程(但使用運行是可以正常停止的,就調試模式不行,猜測是因為xebug的原因),比如下圖,我這個項目正常來說,是7個cli進程,但你看,會出現(xiàn)好多好多。
這里出現(xiàn)了13個,并且,無法正常再次調動調試模式。
所以,我們的思路就是,在每次啟動之前,先檢查有沒有php.exe進程,如果有,則把所有cli的進程全部殺死,然后再啟動調試。
1.在項目根目錄新建一個bat,叫 kill cli.bat,內容如下:
@echo off
tasklist|find /i "php.exe"
if %errorlevel%==0 (
echo "has php cli"
taskkill /F /IM php.exe
) else (
echo "no php cli find"
)
然后先右鍵運行一下這個配置,確保沒問題,同時生成一個php配置
正確結果如下:
然后,配置調試模式運行前執(zhí)行這個配置
后面,如果更改了代碼,想要重啟調試,則只需要點擊一下那個紅色調試按鈕就好了。任務管理器中進程數(shù)量一直是正確的。
windows 可以在這里下載 xdebug
https://xdebug.org/wizard