- PHP動(dòng)態(tài)網(wǎng)站開發(fā)實(shí)踐教程
- 盧欣欣 李靖主編
- 1318字
- 2021-09-17 17:55:51
1.7 Xdebug斷點(diǎn)調(diào)試

1.7 Xdebug斷點(diǎn)調(diào)試
調(diào)試是軟件開發(fā)過程中一定會經(jīng)歷的過程,在PHP開發(fā)過程中雖然可以借助echo、print_r()、var_dump()、printf()等函數(shù)輸出要監(jiān)視的變量的值,進(jìn)而進(jìn)行程序調(diào)試,但是如果想更便利、高效地進(jìn)行斷點(diǎn)調(diào)試則需要借助第三方插件Xdebug來實(shí)現(xiàn)。Xdebug是一個(gè)開放源代碼的PHP程序調(diào)試器,可以用來跟蹤、調(diào)試和分析PHP程序的運(yùn)行狀況。本節(jié)以1.4節(jié)中使用phpStudy搭建的PHP運(yùn)行環(huán)境為例來安裝配置Xdebug。
1. 獲取Xdebug
Xdebug和當(dāng)前使用的PHP環(huán)境版本有密切關(guān)系,在下載時(shí)需要選擇與之對應(yīng)的版本。在選擇版本時(shí)可以借助Xdebug官方提供的一個(gè)檢測工具來快捷地選擇合適的版本。
1)檢測PHP環(huán)境信息。在本地站點(diǎn)中新建一個(gè)phpInfo.php文件,在該文件中輸入以下代碼:

2)分析版本信息。運(yùn)行phpInfo.php文件,結(jié)果如圖1-31所示。按〈Ctrl+A〉和〈Ctrl+C〉組合鍵全選并復(fù)制該頁面中的所有信息。在瀏覽器中訪問“https://xdebug.org/wizard”,將之前復(fù)制的信息粘貼到圖1-32所示的文本框中,然后單擊“Analyse my phpinfo() output”按鈕。

圖1-31 PHP環(huán)境檢測
Xdebug官網(wǎng)會自動(dòng)分析提交的PHP環(huán)境信息并給出下載鏈接,按照給出的提示信息進(jìn)行下載即可。
2. 安裝Xdebug
1)將下載的文件移動(dòng)到C:\phpstudy_pro\Extensions\php\php7.3.4nts\ext。

圖1-32 分析phpinfo()信息
2)編輯C:\phpstudy_pro\Extensions\php\php7.3.4nts\php.ini并添加行zend_extension= C:\phpstudy_pro\Extensions\php\php7.3.4nts\ext\php_xdebug-2.7.2-7.3-vc15-nts.dll。
3)重新啟動(dòng)Apache服務(wù)。
3. 檢查是否安裝成功
重新運(yùn)行phpinfo.php文件,如果返回的信息中包含如圖1-33所示的xdebug相關(guān)信息則說明安裝成功。

圖1-33 phpinfo.php環(huán)境檢測結(jié)果
4. 在PhpStorm中使用Xdebug
1)修改配置信息。編輯C:\phpstudy_pro\Extensions\php\php7.3.4nts\php.ini文件,增加如下調(diào)試配置信息并重啟Apache服務(wù)(路徑信息根據(jù)實(shí)際情況做調(diào)整)。


2)設(shè)置Xdebug端口。選擇“File”→ “Settings”命令,打開“Settings”對話框,選擇“Languages & Frameworks”→ “PHP”→ “Debug”選項(xiàng),在如圖1-34所示的對話框中將端口號修改為9100(和xdebug. remote port = 9100保持一致),然后單擊“Apply”按鈕。

圖1-34 修改端口
3)配置DBGp Proxy。在“Setting”對話框中,選擇“PHP”→“Debug”→“DBGp Proxy”選項(xiàng),在如圖1-35所示的對話框中填寫“IDE Key”(和xdebug.idekey=PHPSTORM保持一致)和“Host”(和xdebug.remote_host=www.demo.com保持一致),“Port”默認(rèn)為9001可不修改,單擊“Apply”按鈕。
4)配置Servers。在“Setting”對話框中,選擇“PHP”→“Servers”選項(xiàng),創(chuàng)建一個(gè)本地調(diào)試服務(wù)器,在如圖1-36所示的界面中單擊“+”按鈕新增一個(gè)Server,“Name”可自己定義,“Host”依然填寫www.demo.com,“Port”默認(rèn)為80,“Debugger”選擇Xdebug,最后單擊“OK”按鈕,關(guān)閉“Setting”對話框。
5)配置測試項(xiàng)目。選擇“Run”→ “Edit Configurations”命令,新建一個(gè)運(yùn)行調(diào)試配置,在彈出的如圖1-37所示的對話框中單擊左側(cè)的“+”按鈕,在彈出的下拉菜單中選擇“P HP Web Page”選項(xiàng),打開如圖1-38所示的對話框,然后自定義運(yùn)行調(diào)試配置的“Name”,在“Server”下拉列表框中選擇在圖1-36中創(chuàng)建的本地調(diào)試服務(wù)器,即“myServer”。

圖1-35 設(shè)置DBGp Proxy信息

圖1-36 創(chuàng)建本地調(diào)試服務(wù)器
6)斷點(diǎn)測試。在項(xiàng)目中新建一個(gè)名為“test. php”的文件,單擊代碼視圖中行號的位置新增一個(gè)斷點(diǎn)。在窗口右上角選擇“testDebug”的調(diào)試配置,單擊“Start|Stop Listening for PHP Debug Connections”按鈕,其中,為開啟監(jiān)聽,
為停止監(jiān)聽。最后單擊
按鈕或直接在瀏覽器中通過地址www. demo. com/test. php進(jìn)入調(diào)試模式。

圖1-37 新增運(yùn)行調(diào)試配置

圖1-38 填寫配置信息
程序會在設(shè)置斷點(diǎn)的位置暫停程序運(yùn)行,如圖1-40所示。此時(shí)可以在下方的調(diào)試面板中查看當(dāng)前的調(diào)試信息,也可通過快捷鍵〈F8〉(Step Over)、〈F7〉(Step Into)來繼續(xù)執(zhí)行程序。
Step Over(單步跳過)將子函數(shù)整體作為一步,不會進(jìn)入子函數(shù)內(nèi)部單步執(zhí)行。Step Into(單步跳入)遇到子函數(shù)后進(jìn)入子函數(shù)內(nèi)部繼續(xù)單步執(zhí)行。

圖1-39 設(shè)置斷點(diǎn)

圖1-40 調(diào)試模式
- Python程序設(shè)計(jì)教程(第2版)
- PowerCLI Cookbook
- PHP網(wǎng)絡(luò)編程學(xué)習(xí)筆記
- 匯編語言程序設(shè)計(jì)(第3版)
- Visual Basic程序設(shè)計(jì)實(shí)踐教程
- Instant Nancy Web Development
- Lighttpd源碼分析
- Mastering Business Intelligence with MicroStrategy
- Swift 4 Protocol-Oriented Programming(Third Edition)
- 硬件產(chǎn)品設(shè)計(jì)與開發(fā):從原型到交付
- 大學(xué)計(jì)算機(jī)應(yīng)用基礎(chǔ)(Windows 7+Office 2010)(IC3)
- HTML5移動(dòng)Web開發(fā)
- DevOps 精要:業(yè)務(wù)視角
- 軟件測試技術(shù)
- JavaScript Unit Testing