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 断点调试及单元测试 教程完成了, 如果觉得本文对您有帮助, 记得点点赞哦~
评论一下?