侧边栏壁纸
  • 累计撰写 47 篇文章
  • 累计收到 0 条评论
PHP

史上最全 PhpStorm Xdebug 远程连接 Docker 断点调试及单元测试

2024-2-28 / 0 评论 / 174 阅读

Why?

PHP 程序报错,仔细检查代码后找不到问题。需要重点检查 switch 语句分支判断,确保符合预期。建议使用 Xdebug 断点调试,可以方便地定位错误和查看变量值,帮助快速解决问题。

启用 Xdebug,逐行进入代码,深入了解其执行流程。这将揭示代码的真实运行步骤和调用关系。

此外,Xdebug 可让你实时跟踪每个变量的值和变化,消除 var_dump 代码注入(忘记移除将导致尴尬的代码提交,成为团队耻辱)。

Xdebug 说明

Xdebug 是一个 PHP 扩展,提供调试和性能分析功能。

Xdebug 调试信息, 异常消息中的堆栈和函数调用跟踪

用户定义函数的完整参数列表
函数名称、文件名和行号
对成员函数的支持
内存分配
保护用户免受无限递归的影响

其他功能

PHP 脚本的概要分析信息
代码覆盖率分析
交互式调试脚本的功能,通过调试器前端进行交互

开始使用

Xdebug 扩展安装就不介绍了, 这里假设您已经安装好了。接下来我们就开始配置 PHPStorm:

找到如图所示的位置 或 点击设置->构建、执行、部署->Docker->添加服务, 提示连接成功表示远程连接 Docker 完成 (当然你也可以用 TCP套接字 连接)

连接完成后如下图打开连接的 Docker 服务, 此时已经可以看到 Docker 容器等信息了

接下来配置 PHP-CLI 解析器, 废话少说 如下图





到此, PHP-CLI 解析器已经配置完成。

配置单元测试 (PHPUnit)

直接上图, 按图的步骤操作即可。随便打开一个 Test.php 文件, 配置 PHP 单元测试 (PHPUnit) , 编写测试代码后运行即可。




配置断点调试

配置 php.ini 文件的 Xdebug 参数

这里安装的 Xdebug 版本是 2.9.6 , 如果是 3.0 以上版本的 Xdebug 配置参数会有所不同 (自行谷歌, 稍作修改即可)。

附带一个Jetbrains 官方 的方式 点击查看

如下是 Xdebug 2.9.6 扩展的配置参数, 打开 php.ini 配置文件:

[xdebug]
;开启 Xdebug 支持远程调试
xdebug.remote_enable=1
;远程调试的主机,一般都是 Docker 宿主机器,本地调试就是本机,IP 可以通过 `docker inspect 容器名` 获得
xdebug.remote_host=host.docker.internal
;远程调试机器的端口,一般是9000
xdebug.remote_port=9000
;idekey 对接调试的密钥,调试时候和 PhpStorm 里面的务必保持一致
xdebug.idekey=PHPSTORM
;自动触发调试,可以将这个值设为1
xdebug.remote_autostart=1

xdebug.remote_handler="dbgp"

;启用代码自动跟踪
xdebug.auto_trace = On
;启用性能检测分析
xdebug.profiler_enable = On
xdebug.profiler_enable_trigger = On
xdebug.profiler_output_name = profiler.out.%t.%p

配置完成后重启 php容器

配置 PhpStorm, 打开设置按照下图配置


打开项目, 增加远程 Debug 配置


配置浏览器插件

最后安装浏览器插件, 这里用的 Google 浏览器 (如果是其他浏览器也可以通过对应的插件市场查找), 需要到插件市场下载 Xdebug Helper, 如果无法翻墙可以通过下载安装包然后导入即可。

安装完 Xdebug Helper 扩展后, 右键 Xdebug 图标选择选项点击进入配置页面, 配置为如下效果

然后在浏览器中输入即将调试的接口地址,在点击左键 Xdebug 图标,点击 Debug 按钮将 Xdebug 变为绿色

开始调试

第一步: 打开调试按钮, 设置代码断点和选择需要调试的服务

第二步: 点击开始调试按钮

第三步: 打开网站刷新, 将自动跳转至 PhpStorm, 显示如下调试内容

结尾!!!

整个 PhpStorm Xdebug 远程连接 Docker 断点调试及单元测试 教程完成了, 如果觉得本文对您有帮助, 记得点点赞哦~

评论一下?

OωO
取消