摘要:紅色方形,表示中斷當前程序調試。第三個圖形示,強制進入當前函數(shù)內部的程序。框架說明加載的文件列表可以觀察到所有全局變量當前局部變量的數(shù)值可以新增變量,觀察變量隨著程序執(zhí)行的變化。參考文章使用與調試一
序言
Xdebug 作為 PHP 調試工具,提供了豐富的調試函數(shù)和配置,可以直觀的看到 PHP 源代碼的步進和性能數(shù)據(jù),以便優(yōu)化PHP代碼。
使用 phpstorm + xdebug 來調試 php 程序是借助強大的IDE監(jiān)聽功能, 更方便的調試程序. 提高我們的編碼效率, 固然 var_dump, print_r 等函數(shù)也能提供相應的功能, 但是自動化的工具更能夠事半功倍. 下面我根據(jù)自己的使用介紹下如何進行調試和配置.
, 一種方式是用外部設置的 session, 另外一種是在 phpstorm 中配置頁面入口然后使用內置的監(jiān)聽來訪問, 原理相同, 下面我們從原理開始講解
調試原理 配置調試環(huán)境 1) 配置 xdebug這里使用了最小化配置, 對于 profile 等功能沒有配置
[xdebug] zend_extension="/usr/local/opt/php70-xdebug/xdebug.so" xdebug.remote_enable=1 # 啟用遠程調試 xdebug.remote_connect_back=1 # 忽略 remote_host 配置, 不關注主機配置, 開發(fā)者使用最舒服 xdebug.remote_port=9050 # 監(jiān)聽端口
注意 這里監(jiān)聽端口默認是 9000 , 和 php 默認監(jiān)聽重復, 注意盡量不用使用 9000, 以免出現(xiàn)不生效的情況.
2) 設置 phpstorm 配置并開啟監(jiān)聽這里是讓 phpstorm 通過監(jiān)聽端口的方式獲取到xdebug 斷點傳送過來的數(shù)據(jù)
2.1) 配置端口我們這里監(jiān)聽的是 9500 端口, 和 xdebug 配置監(jiān)聽數(shù)據(jù)端口一致
2.2) 開啟phpstorm 數(shù)據(jù)監(jiān)聽切換 “開始監(jiān)聽PHP調試連接” 按鈕。
3) 在 phpstorm 中設置斷點點擊行號右側空白, 設置斷點
4) 設置 debug sessiondebug session 的工具的目的是設置一個cookie, 讓每次發(fā)送數(shù)據(jù)的時候都會攜帶這個 cookie, 從而識別監(jiān)聽.
4.1) 安裝工具安裝 chrome 擴展 Xdebug helper
4.2) 點擊 圖標設置session已經設置了cookie, Key 是 XDEBUG_SESSION, 值是 PHPSTORM, 我認為這里的值無關緊要, 對于 phpstorm 來說, 是能夠監(jiān)控到的.
5) 運行頁面這里我們在斷點位置可以看到輸出的內容項目
另一種方式: 內部調用這里的另外一種方式的服務器配置方式和流程完全一致, 就是第四步和第五步有所不同, 實現(xiàn)的原理是在phpstorm中設置運行的服務器, 然后通過 debug 模式自動設置 XDEBUG_SESSION, 并且自動開啟監(jiān)聽.
內部調用: 4) 設置 debug session 4.1) 設置 web 訪問的服務器例如我這里的本地域名是 l.dailian.sour-lemon.com, 我們需要配置一個本地服務器來打開這個頁面, 我們首先配置一臺服務器.
注意 這里的配置的域名是你本地已經配置好開發(fā)環(huán)境的域名, 端口號是 本地開發(fā)所使用的端口, 我這里是 l.dailian.sour-lemon.com 和 80
4.2) 配置調試頁面我們這里創(chuàng)建的調試頁面的類型是 PHP Web Application, 服務器選擇的是剛才已經建立好的服務器
這樣運行的情況下上面的 2.2) 開啟phpstorm 數(shù)據(jù)監(jiān)聽 步驟可以忽略掉, 這里不需要開啟這個監(jiān)聽.
5.1) 開始 debug點擊 debug 按鈕, 這里會自動打開一個頁面并且傳遞一個唯一的ID(可能是進程 ID)作為 debug 值
打開的url地址是: http://l.dailian.sour-lemon.com/?XDEBUG_SESSION_START=13608, 這里的數(shù)值是會變動的.
5.2) 查看 debug 面板打開 debug 面板, 會看到相對應的監(jiān)聽 idekey, 這里和上一步設置的key是一致的, 同樣也和 cookie 中的設置的 XDEBUG_SESSION 值一致
第一次運行的時候可以通過 phpstorm 自帶的工具來檢查配置的兼容性.
Run > Web Server Debug Validation
2. debug 幫助面板說明左側
綠色三角形 : Resume Program,表示將繼續(xù)執(zhí)行,直到下一個中斷點停止。
紅色方形 : Stop,表示中斷當前程序調試。
上方
第一個圖形示 : Step Over,跳過當前函數(shù)。
第二個圖形示 : Step Into,進入當前函數(shù)內部的程序(相當于觀察程序一步一步執(zhí)行)。
第三個圖形示 : Force Step Into,強制進入當前函數(shù)內部的程序。
第四個圖形示 : Step Out,跳出當前函數(shù)內部的程式。
第五個圖形示 : Run to Cursor,定位到當前光標。
框架說明
Frames : 加載的文件列表
Variables : 可以觀察到所有全局變量、當前局部變量的數(shù)值
Watches : 可以新增變量,觀察變量隨著程序執(zhí)行的變化。
Zero-configuration Web Application Debugging with Xdebug and PhpStorm
使用 PHPStorm 與 Xdebug 調試 Laravel (一)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25934.html
摘要:的方式不僅僅局限于框架,同樣適用于與其他框架,也適用于原生的代碼。學會使用這種方式之后,一般很少使用,,,等原生或框架輔助函數(shù)進行了。 環(huán)境 系統(tǒng)版本:OSX 10.11.4 PHP 版本:7.0.5 Xdebug 版本:2.4.0 Laravel 版本:5.1.31 PHPStorm 版本:10.0.4 根據(jù)上篇文章的配置,在工作時會發(fā)現(xiàn),我們需要經常調整 PHP Web App...
摘要:單擊此按鈕可暫停程序執(zhí)行。單擊此按鈕,通過標準關閉腳本從外部終止當前進程。實際上,插入符號處的當前行有一個臨時斷點集,一旦程序執(zhí)行暫停,就會刪除它。心中始終十分抗拒,導致功能變更延期。 介紹 在 上一期 中我們已經把 xdebug 和 phpstorm 的關聯(lián)配置設置好了,接下來我將會深入的介紹 debug 的運用。分為3點內容 快速找到錯誤的原因 輔助讀懂比效復雜的代碼 代碼重構 ...
摘要:下載是一個開放源代碼的程序調試器即一個工具,可以用來跟蹤,調試和分析程序的運行狀況。全部可用配置可參考官方的一個鏈接設置服務器配置完成后,需要對作一些設置,使其能夠監(jiān)聽到瀏覽器的請求。 下載Xdebug Xdebug是一個開放源代碼的PHP程序調試器(即一個Debug工具),可以用來跟蹤,調試和分析PHP程序的運行狀況。 Xdebug官方網(wǎng)站:http://xdebug.org/ 配置...
摘要:連接容器內的進行斷點調試進行斷點調試盡管不像其他語言那樣方便,但是有些是有確實有其用處,比如調試循環(huán)內的數(shù)據(jù)異常時。 PhpStorm連接容器內的XDebug進行斷點調試 php進行斷點調試盡管不像其他語言那樣方便,但是有些是有確實有其用處,比如調試循環(huán)內的數(shù)據(jù)異常時。在php于phpstorm都安裝在同一環(huán)境下時,配置phpstorm的xdebug調試并不是多困難的事情,但是如果你使...
摘要:基本信息安裝下載擴展配置配置新建注如果不使用路徑映射,將只能調試框架入口文件配置插件地址配置測試開啟編輯器監(jiān)聽瀏覽器訪問項目打開,可以看到控制臺已經打開斷點調到下一個斷點,可以看到效果了使用調試安裝插件使用請求進入斷 1.基本信息: window 7 php:7.1.3 phpstorm:2017.1 xdebug:2.5.1 postman postman interceptor c...
閱讀 2849·2021-11-22 11:56
閱讀 3553·2021-11-15 11:39
閱讀 898·2021-09-24 09:48
閱讀 758·2021-08-17 10:14
閱讀 1321·2019-08-30 15:55
閱讀 2753·2019-08-30 15:55
閱讀 1310·2019-08-30 15:44
閱讀 2774·2019-08-30 10:59