今天開(kāi)頭寫(xiě)點(diǎn)歷史:
- 二十年前流行asp,當(dāng)時(shí)用vb整合常用函數(shù)庫(kù)寫(xiě)了一個(gè)dll給asp調(diào)用,并在此基礎(chǔ)上開(kāi)發(fā)一套仿windows界面的后臺(tái)管理系統(tǒng);
- 后來(lái)asp逐漸沒(méi)落,于是在十多年前轉(zhuǎn)投php,不久后用php寫(xiě)了一套mvc框架,同時(shí)參考asp仿windows經(jīng)驗(yàn),結(jié)合興起的jQuery重寫(xiě)后臺(tái)管理系統(tǒng)。這個(gè)框架從php4和php5版本開(kāi)始,陸續(xù)更新到現(xiàn)在,并在這個(gè)框架和后臺(tái)上開(kāi)發(fā)了幾十套應(yīng)用產(chǎn)品,目前大部分運(yùn)行在php4或者php5上依然沒(méi)問(wèn)題;
- 后來(lái)golang、python興起,php也越來(lái)越規(guī)范化和復(fù)雜化??杉热欢家笠?guī)范化了,那不如直接投奔golang吧…而且vue作為前端,前后分離的模式也開(kāi)始流行,于是…
- 直到最近的國(guó)產(chǎn)化風(fēng)向起來(lái)了,心想golang會(huì)不會(huì)因?yàn)槭枪雀璞尘岸谖磥?lái)有所顧忌?算了,重新整理一遍php框架,做好準(zhǔn)備吧。
- 因?yàn)楫?dāng)時(shí)開(kāi)發(fā)框架時(shí)就整合了錯(cuò)誤報(bào)告、日志記錄、內(nèi)存和效率檢測(cè)等小工具,并且每開(kāi)發(fā)一個(gè)核心部件就會(huì)測(cè)試其運(yùn)行效率,選擇最優(yōu)解,遇到bug時(shí),最不濟(jì)用
var_dump()
和die()
手動(dòng)一行行試也能解決大部分問(wèn)題,所以一直以來(lái)幾乎沒(méi)上過(guò)Xdebug等工具。- 而今天,就在今天,從Xdebug下手吧~~
為什么要寫(xiě)歷史呢?難道是快春節(jié)了?有點(diǎn)感慨?
一、概況
Xdebug是PHP的擴(kuò)展,并且提供了一系列功能來(lái)改善 PHP 開(kāi)發(fā)體驗(yàn)。
官網(wǎng):https://xdebug.org/
1. 步驟調(diào)試 (Step Debugging)
一種在執(zhí)行腳本時(shí)在 IDE 或編輯器中單步執(zhí)行代碼的方法。
2. 對(duì) PHP 錯(cuò)誤報(bào)告的改進(jìn)(Improvements to PHP’s error reporting)
改進(jìn)的功能,堆棧跟蹤 通知、警告、錯(cuò)誤和異常,突出顯示代碼路徑 錯(cuò)誤var_dump()
3. 描圖(Tracing)
寫(xiě)入每個(gè)函數(shù)調(diào)用,包括參數(shù)和調(diào)用位置 到磁盤(pán)。(可選)還包括每個(gè)變量賦值和返回值 每個(gè)函數(shù)的值。
4. 分析(Profiling)
允許您在可視化工具的幫助下分析 PHP應(yīng)用程序的性能并找到瓶頸。
5. 代碼覆蓋率分析(Code Coverage Analysis)
顯示運(yùn)行時(shí)執(zhí)行代碼庫(kù)的哪些部分 使用 PHPUnit 進(jìn)行單元測(cè)試。
二、下載
1. 直接下載
https://xdebug.org/docs/install
- 選擇windows
- 選擇download
- 下載
2. 導(dǎo)航下載
https://xdebug.org/wizard
由官網(wǎng)分析PHP狀態(tài)后決定php下載地址。
- 在php頁(yè)面中寫(xiě)上
phpinfo();
-
運(yùn)行php獲得內(nèi)容
-
復(fù)制源代碼
ctrl + u
打開(kāi)源代碼界面,復(fù)制相關(guān)內(nèi)容,一般前后有<table></table>
標(biāo)簽。 -
黏貼分析
黏貼至官網(wǎng)導(dǎo)航文本框后點(diǎn)擊按鈕Analyse my phpinfo() out
開(kāi)始分析。 -
下載
根據(jù)分析結(jié)果點(diǎn)擊其所提供下載
三、安裝
1. 放置與更名
根據(jù)導(dǎo)航提示,將下載好的Xdebug組件放入php的ext
目錄中,并將文件更名為 php_xdebug.dll
2. 修改php.ini
在最后寫(xiě)入一行:
zend_extension = xdebug
3. 重啟服務(wù)器
- 重啟后瀏覽器中打開(kāi)php文件,拉到中后部可看到
4. 安裝分析
可以參考前面示例,將該頁(yè)代碼中涉及php信息的源代碼復(fù)制黏貼到向?qū)ы?yè)面
得到分析結(jié)果
如果上圖紅框位置顯示版本號(hào),那么恭喜安裝成功了。
四、功能
1. Development Helpers 開(kāi)發(fā)助手
將更好處理錯(cuò)誤消息,并從PHP的內(nèi)置中獲取更好的信息功能。
使用說(shuō)明:https://xdebug.org/docs/develop
php.ini中寫(xiě)入開(kāi)啟(默認(rèn)開(kāi)啟):
xdebug.mode = develop
可以通過(guò) phpinfo()
或者 xdebug_info()
查看是否已開(kāi)啟該功能
2. Code Coverage Analysis 代碼覆蓋率分析
代碼覆蓋率可以了解哪些腳本在請(qǐng)求期間執(zhí)行。
使用說(shuō)明:https://xdebug.org/docs/code_coverage
php.ini中寫(xiě)入開(kāi)啟:
xdebug.mode = coverage
3. Garbage Collection Statistics 垃圾回收統(tǒng)計(jì)
PHP中的垃圾回收(GC)會(huì)對(duì)內(nèi)存和性能產(chǎn)生嚴(yán)重影響,了解它何時(shí)被觸發(fā)以及每次運(yùn)行的效率如何,借以?xún)?yōu)化程序。
使用說(shuō)明:https://xdebug.org/docs/garbage_collection
php.ini中寫(xiě)入開(kāi)啟:
xdebug.mode = gcstats
xdebug.start_with_request = yes
4. Profiling 分析
允許查找腳本中的瓶頸,并使用外部工具將其可視化。
說(shuō)明:https://xdebug.org/docs/profiler
php.ini中寫(xiě)入開(kāi)啟:
xdebug.mode = profile
5. Step Debugging 步驟調(diào)試
允許以交互方式演練代碼以調(diào)試控制流和檢查數(shù)據(jù)結(jié)構(gòu)。
使用說(shuō)明:https://xdebug.org/docs/step_debug
php.ini中寫(xiě)入開(kāi)啟:
xdebug.mode = debug
6. Function Trace
允許記錄所有函數(shù)調(diào)用,包括參數(shù),并且以不同格式將值返回給文件
使用說(shuō)明:https://xdebug.org/docs/trace
php.ini中寫(xiě)入開(kāi)啟:
xdebug.mode = trace
五、VSCode插件
1. 下載插件
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-782945.html
2. 配置
- 必須打開(kāi)Xdebug的debug功能,即在php.ini中開(kāi)啟
xdebug.mode = debug
xdebug.start_with_request = yes
- 在VSCode的調(diào)試中激活參數(shù)
參考文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-782945.html
- Windows安裝PHP調(diào)試工具Xdebug
- PHP:使用xdebug profiler 做性能分析
- windows下全免費(fèi)手動(dòng)搭建php8+mysql8開(kāi)發(fā)環(huán)境及可視化工具安裝
- PHP開(kāi)發(fā)日志 ━━ IIS7安裝PHP8.0及多個(gè)版本如何同時(shí)存在一臺(tái)服務(wù)器
- 怎么在VS Code編輯器玩轉(zhuǎn)PHP開(kāi)發(fā)
到了這里,關(guān)于PHP開(kāi)發(fā)日志 ━━ php8.3安裝與使用組件Xdebug的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!