PHPStorm配置Xdebug及使用

前言

在阅读一些复杂框架源码时使用Xdebug可以有效的提高源码阅读的效率,网络上相关Xdebug配置的文章有很多,看了几篇文章后在实践过程中还是踩了不少坑,所以还是记录下具体的配置及使用的步骤。本文仅记录本地配置的步骤,服务器远程配置还未实践就不瞎写了

简述

阅读理解以下简述有利于理解后面配置步骤中的作用
(0)PhpStorm这类成熟的IDE都会集成了一个遵循DBGp协议(专门用来调试的协议)的Xdebug插件,当启动该插件时,插件会根据配置好的端口(通常默认是9000)来监听远程服务器发送过来的debug信息;
(1)当浏览器发送一个带有XDEBUG_SESSION_START参数请求时(例如:http://a.com/?XDEBUG_SESSION_START=10952,PHP会通知PHP 扩展的Xdebug进行准备,PHP 扩展的Xdebug会往(0)中提到的IDE Xdebug插件监听的端口发送debug请求,当通知完后PHP扩展的Xdebug也会通知PHP准备就绪
(2)PHP收到准备就绪后开始一行行执行代码,每行都会让PHP扩展的Xdebug过滤,每次也都会请求IDE的Xdebug发送代码执行情况,并且等待IDE Xdebug的下一步操作

主要步骤

(0)安装PHP Xdebug扩展
(1)对IDE进行配置(本文主要就是PhpStorm)
(2)浏览器安装Xdebug helper扩展

安装PHP Xdebug扩展

(0)本地环境使用PHPStudy的可以省略步骤(1),PHPStudy自带了Xdebug扩展的dll
(1)打开【http://xdebug.org/wizard】链接可以看到如下图所示(贴的图是翻译后的页面,注意下翻译后的页面可能会提交失败,这边是只是为了文章展示才进行翻译的,提交前不要进行翻译页面)

image-1.png

该网页是由xdebug提供的,我们在代码中只打印phpinfo将其内容全部复制到大输入框中(CTR+A->CTR+C),再点击红框中的按钮,会根据通过的信息分析出推荐使用的xdebug版本,如下
image-2.png

红框处点击下载。下载完成后将dll扩展复制到本地php环境对应的php扩展目录中(以我本地路径为例:D:\phpStudy\php\php-7.2.15-nts\ext)
(2)编辑php.ini添加如下配置,添加后重启服务器,可通过phpinfo()查看Xdebug扩展安装成功

[XDebug]
;注释部分是phpstudy自带的配置
;xdebug.profiler_output_dir="D:\phpStudy\tmp\xdebug"
;xdebug.trace_output_dir="D:\phpStudy\tmp\xdebug"
;;zend_extension="D:\phpStudy\php\php-7.2.15-nts\ext\php_xdebug.dll"
;以实际路径及文件名为准
zend_extension="D:\phpStudy\php\php-7.2.15-nts\ext\php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
;以实际路径及文件名为准
xdebug.profiler_output_dir = "D:\phpStudy\tmp\xdebug"
;以实际路径及文件名为准
xdebug.trace_output_dir ="D:\phpStudy\tmp\xdebug"
xdebug.profiler_output_name = "cache.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_mode = "req"
;配置远程xdebug监听的ip及端口,一般默认端口是9000,容易冲突这边改为9010端口
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9010
xdebug.idekey= PHPSTORM

对IDE进行配置

(0)直接上图,按图片顺序的步骤进行配置即可


image-3.png
image-4.png

image-5.png

image-6.png

image-7.png

浏览器安装Xdebug helper扩展

(0)首先这个扩展的作用是可以开启debug模式,这样就不用自己手动在url后面加调试参数(简述中提到的XDEBUG_SESSION_START=10952),并非没有这个扩展就不能进行debug了,如果没有这个需求可以跳过这个环节,直接进行访问
(1)应用商店安装扩展即可,访问不了自行百度解决吧方式很多这里就不过多赘述,安装后出现会出现对应LOGO,右键后如下所示,点击选项


image-7.png

(2)进入选项页面按下图操作即可


image-8.png

开始访问

(0)如图下所示,开启监听后可通过cmd命令行输入以下命令,来查看端口是否成功被监听

netstat -aon | findstr 9010
image-9.png

(1)点击后会打开默认配置的浏览器,访问servers(image-5.png)中配置的IP:PORT或域名,如下图,这里图片显示正在加载是因为代码中打了断点

image-10.png

image-11.png

主要参考文献

https://blog.csdn.net/yinhangbbbbb/article/details/79247331
https://www.jianshu.com/p/8cf6f8c614b3

如有错误,欢迎留言纠正

END

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。