一、Xdebug 介绍
Xdebug 是 PHP 的一个扩展,提供了多种功能以改善 PHP 开发体验。
- 单步调试:在脚本执行时于集成开发环境(IDE)或编辑器中逐行调试代码的一种方式。
- PHP 错误报告的改进:改进的 var_dump() 函数,针对提示、警告、错误和异常提供堆栈跟踪,以突出显示导致错误的代码路径。
- 跟踪:将每个函数调用(包括参数和调用位置)写入磁盘。还包括每个函数中的变量赋值和返回值。资料收集借助可视化工具,让您能够分析 PHP 应用程序的性能并找出瓶颈。
- 代码覆盖率分析:用于展示在使用 PHPUnit 运行单元测试时,您的代码库中哪些部分被执行。
二、安装 Xdebug
1、使用 phpinfo() 输出本地安装的 PHP 信息
2、复制 phpinfo() 中的所有内容,放入下图文本框中获取合适版本的Xdebug。(地址:https://xdebug.org/wizard)
3、点击【Analyse my phpinfo() output】按钮后出现下图内容,根据下图中步骤进行安装。
4、在对应PHP版本的 php.ini 文件底部添加以下配置内容:- [xdebug]
- xdebug.idekey="PHPSTORM"
- zend_extension="自己php的目录\ext\php_xdebug.dll"
- xdebug.mode=debug
- xdebug.client_host=127.0.0.1
- xdebug.client_port=9111
- xdebug.log="自己的日志目录\tmp\xdebug.log"
- xdebug.start_with_request=yes
复制代码
三、配置 PhpStorm 使用 Xdebug
1、打开phpstorm -> fiel -> settings
2、选择 PHP 后如下图操作
3、选择对应的PHP版本和之前下载的Xdebug
4、在设置页面选择Debug【 phpstorm -> fiel -> settings -> PHP -> Debug 】进行配置:
5、配置 IDE key,如下图:
6、配置服务器路径映射【 phpstorm -> fiel -> settings -> PHP -> Servers 】
四、开始调试
1、调试方法:
在 PhpStorm 的右上角,点击电话图标 (Start Listening for PHP Debug Connections),让它变成按下状态。
在你的代码中,行号旁边点击一下,设置一个断点(会出现一个红点)。
有两种常用方式让 Xdebug 连接到 PhpStorm:
安装 Xdebug Helper 浏览器扩展(支持 Chrome, Firefox, Edge)。
在浏览器中打开你的项目页面。
点击浏览器工具栏中的 Xdebug Helper 图标,选择 Debug,图标会变成绿色。
刷新页面。PhpStorm 会自动捕获到调试连接,并弹出调试窗口,停在你的断点处。
在你要调试的页面 URL 后加上参数 ?XDEBUG_SESSION_START=PHPSTORM。
或者,使用开发者工具(F12)设置一个名为 XDEBUG_SESSION,值为 PHPSTORM 的 Cookie。
然后访问该 URL。同样会触发调试。
一旦触发成功,PhpStorm 会变为调试视图,你可以:
- 查看变量:在 Variables 窗口查看所有变量值。
- 步进调试:使用 Step Over (F8), Step Into (F7), Step Out (Shift+F8) 等按钮控制执行流程。
- 查看调用栈:查看函数调用链。
- 计算表达式:动态计算某个表达式的值。
2、主要快捷键:
快捷键名称作用(F8)
Step Over单步跳过。执行当前行代码,如果该行调用了函数或方法,不会进入其内部,而是将其作为一个整体执行完,然后跳到下一行。用于快速穿越你不关心的函数。(F7)
Step Into单步进入。执行当前行代码,如果该行有函数或方法调用,会进入该函数或方法的内部。这是分析逻辑细节最常用的操作。Alt+Shift+F7Force Step Into强制单步进入。即使是被调用的函数是 PHP 内置函数(如 array_map)或者 Composer 依赖库中的函数,也会强制进入。普通 Step Into 会跳过这些。(Shift+F8)
Step Out单步跳出。当你进入一个函数内部后,使用此操作会直接执行完当前函数的剩余所有代码,并返回到调用这个函数的位置。当你误入一个复杂函数或快速看完核心逻辑后想离开时非常有用。(Alt+F9)
Run to Cursor运行到光标处。让代码一直执行,直到到达你光标所在的那一行。这比设置多个断点再依次跳过更高效。F9Resume Program恢复程序。让代码继续正常运行,直到遇到下一个断点或脚本结束。(Ctrl+F2)
Stop停止。终止当前的调试会话。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |