使用PHPStorm+XDebug搭建單步調(diào)試環(huán)境
PHP是一個(gè)解釋執(zhí)行的語言,一般來說,進(jìn)行調(diào)試的時(shí)候,只要通過使用 var_dump 或者 var_export 兩個(gè)函數(shù),就可以得到PHP中變量的值,達(dá)到調(diào)試的地步,但是對于大型項(xiàng)目,或者想研究一下別人的代碼時(shí),使用單步調(diào)試會變得簡單的多。就拿目前最流行的 PHP Laravel 框架為例子,使用 PHPStorm 搭建單步調(diào)試環(huán)境。
PHPStorm安裝和基本配置
PHPStorm下載安裝
PHPStorm除了體積有些大外,算是PHP IDE中非常強(qiáng)大便捷的開發(fā)環(huán)境。官網(wǎng)下載地址:https://www.jetbrains.com/phpstorm/
本站下載地址 點(diǎn)擊下載
PHPStorm激活
安裝之后需要激活,如果經(jīng)濟(jì)能力許可,可以購買正版,當(dāng)然,網(wǎng)上也有很多激活方式。這兒需要提醒的是,如果你激活不了,可是試試在 host 中添加下面這一行 0.0.0.0 account.jetbrains.com
PHPStorm設(shè)置字體大小
打開PHPStorm以后,可以在選擇菜單 File -> Settings -> Editor -> Colors & Fonts -> Font ,在右邊顯示的信息欄中設(shè)置自己習(xí)慣的字體和大小。
PHPStorm導(dǎo)入項(xiàng)目
可以在PHPStorm中選擇:File -> Open,直接打開工作文件夾,一般我喜歡把所有的PHP項(xiàng)目放在一個(gè) PHP_Projects 的文件夾下,然后統(tǒng)一打開,便于開發(fā),一面頻繁切換工作空間。
PHPStorm標(biāo)記項(xiàng)目位置
一般情況下,打開的文件夾下面會有很多項(xiàng)目,我們需要標(biāo)記這些項(xiàng)目,這樣能夠提供更好的索引和代碼之間關(guān)聯(lián)。
菜單選擇:File -> Settings -> Directories,然后把每個(gè)項(xiàng)目的根目錄標(biāo)記為 Sources。
安裝XDebug擴(kuò)展
下載XDebug擴(kuò)展
為了調(diào)試PHP,我們還需要一個(gè)PHP擴(kuò)展:xDebug,這是一個(gè)非常強(qiáng)大的PHP調(diào)試擴(kuò)展,用來最終PHP執(zhí)行過程,執(zhí)行堆棧等。xDebug官方下載地址:https://xdebug.org/,點(diǎn)擊每個(gè)版本說明中的 download 連接即可進(jìn)入下載頁面,注意這兒需要選擇適合自己系統(tǒng)版本和PHP版本的xdebug擴(kuò)展。
配置xdebug擴(kuò)展
下載之后解壓縮,里面包含一個(gè) dll 格式或者 so 格式的動(dòng)態(tài)鏈接庫,我們把它放在PHP安裝目錄的ext文件夾下,然后配置PHP.ini。需要在PHP最后添加xdebug的配置。
[xdebug] zend_extension="C:\Devlope\wamp\php7.16\ext\php_xdebug-2.5.5-7.1-vc14-x86_64.dll" xdebug.remote_enable=1 xdebug.remote_autostart=1 xdebug.remote_port=9000 # 開啟所有站點(diǎn)xdebug調(diào)試 xdebug.remote_connect_back=1
首先進(jìn)行簡單的配置,xdebug的配置非常豐富,詳細(xì)可以查看官方配置說明文檔:https://xdebug.org/docs/all_settings,配置完成之后,需要保存,然后重啟服務(wù)器(Apache或者nginx),然后在 phpinfo(); 中檢查是否安裝成功。
PHPStorm運(yùn)行調(diào)試配置
PHPStorm服務(wù)器配置
如果跳過這一步,則下一步就需要手動(dòng)添加服務(wù)器。如果在這兒配置了服務(wù)器,就可以在下一步中直接選擇。
PHPStorm選擇菜單:File -> Settings -> Language & Frameworks -> PHP -> Servers,點(diǎn)擊那個(gè)綠色的 + 可以添加一個(gè)服務(wù)器配置,可以配置服務(wù)器的主機(jī)地址,端口一擊調(diào)試器,詳細(xì)可以參考下一步的截圖。
PHPStorm運(yùn)行項(xiàng)目配置
PHPStorm選擇菜單:Run -> Edit Configurations;點(diǎn)擊左上角的 + 添加配置,在候選框中選擇 PHP Web Application,然后點(diǎn)擊添加一個(gè)PHP項(xiàng)目實(shí)例。填寫右邊的相關(guān)信息,Start URL 為你的項(xiàng)目的訪問地址,這個(gè)是需要在你的服務(wù)器(Apache或者nginx)中配置的。Server哪兒點(diǎn)擊右邊的三個(gè)點(diǎn),可以添加一個(gè)服務(wù)器實(shí)例,注意填寫的Host需要相同。

PHPStorm調(diào)試配置
PHPStorm選擇菜單:File -> Settings -> Language & Frameworks -> PHP -> Debug,點(diǎn)擊Debug這一項(xiàng),可以看到Debug的配置,一般這兒不用修改,只需要注意Debug port需要和你在PHP.ini中配置的port一致,并且勾選Can accept external connections。
PHPStorm進(jìn)行單步調(diào)試
一切就緒,接下來就是單步調(diào)試了??梢酝ㄟ^點(diǎn)擊PHPStorm中代碼左邊的位置設(shè)置斷點(diǎn),現(xiàn)在我們可以在 Laravel 網(wǎng)站根目錄 Public 下的 index.php 開頭設(shè)置一個(gè)斷點(diǎn),然后選擇PHPStorm菜單:Run -> Debug "alaim" 進(jìn)行調(diào)試,可以看到PHPStorm底部的信息框中答應(yīng)出了所有變量的值。

F8:單步,不跳入函數(shù)
F7:執(zhí)行跳指令,跳入函數(shù)
Shift+F8:跳出函數(shù)
Alt+9:運(yùn)行到指針處
相關(guān)文章
PHP結(jié)合Vue實(shí)現(xiàn)滾動(dòng)底部加載效果
這篇文章主要給大家介紹了關(guān)于PHP結(jié)合Vue如何實(shí)現(xiàn)滾動(dòng)底部加載效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
php使用pthreads v3多線程實(shí)現(xiàn)抓取新浪新聞信息操作示例
這篇文章主要介紹了php使用pthreads v3多線程實(shí)現(xiàn)抓取新浪新聞信息操作,結(jié)合實(shí)例形式分析了php使用pthreads多線程抓取新浪新聞信息具體實(shí)現(xiàn)步驟與操作技巧,需要的朋友可以參考下2020-02-02
PHP下操作Linux消息隊(duì)列完成進(jìn)程間通信的方法
當(dāng)我們開發(fā)的系統(tǒng)需要使用多進(jìn)程方式運(yùn)行時(shí),進(jìn)程間通信便成了至關(guān)重要的環(huán)節(jié)。消息隊(duì)列(message queue)是Linux系統(tǒng)進(jìn)程間通信的一種方式。2010-07-07
PHP讀取XML文件的方法實(shí)例總結(jié)【DOMDocument及simplexml方法】
這篇文章主要介紹了PHP讀取XML文件的方法,結(jié)合實(shí)例形式總結(jié)分析了php基于DOMDocument及simplexml方法針對xml文件的載入、讀取等相關(guān)操作技巧,需要的朋友可以參考下2019-09-09
PHP+JS實(shí)現(xiàn)大文件切片上傳功能實(shí)現(xiàn)實(shí)例源碼
這篇文章主要介紹了PHP+JS實(shí)現(xiàn)大文件切片上傳功能實(shí)現(xiàn)實(shí)例源碼,需要的朋友可以參考下2023-05-05
PHP Trait代碼復(fù)用類與多繼承實(shí)現(xiàn)方法詳解
這篇文章主要介紹了PHP Trait代碼復(fù)用類與多繼承實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了Trait代碼復(fù)用類的原理并結(jié)合具體實(shí)例形式分析了php基于Trait多繼承的相關(guān)實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2019-06-06
PHP文件去掉PHP注釋空格的函數(shù)分析(PHP代碼壓縮)
我自己嘗試過正則,但是發(fā)現(xiàn)在過濾單行注釋等方面不盡如意,很容易出錯(cuò)。無意中看到了某sns里面的strip_whitespace函數(shù),特進(jìn)行分享,希望能對需要的朋友有所幫助2013-07-07

