使用 PhpStorm 进行调试

使用 PhpStorm 和 Xdebug 充分利用 PHP 调试。

设置和管理断点

PhpStorm 的调试 GUI 提供了多功能断点工具。使用条件断点聚焦于命中条件,例如循环中的特定条目。需要在抛出异常时将其捕获吗?使用异常断点即可实现,它适用于整个项目的整个代码库。

断点及其设置不会影响您的源文件,但可以与您的 PhpStorm 项目一起保存并在调试会话中重用。

逐行逐步执行代码

如果您想调试控制流并检查执行的每一行代码的数据结构,您无需到处放置断点。相反,您可以逐步执行代码并在 Debug(调试)工具窗口中检查当前帧堆栈和每一步的变量。

您甚至可以单步执行特定函数以进行更精细的逐行调试。

测试假设并了解代码的功能

交互式调试窗口

通过 PhpStorm 的交互式调试工具窗口,您无需对源代码进行任何更改,就可以调整当前程序状态:更改变量、调用或定义 PHP 函数,或对任意表达式求值。

内联调试器

当程序挂起时,您不仅可以在 Debug(调试)工具窗口中查看变量值并添加监视,还可以在代码编辑器中以内联方式进行。更改的值会被高亮显示,从而可以轻松查看自上次命中断点以来发生的更改。

数据流预测

PhpStorm 会使用在断点处从 PHP 调试器接收到的数据,在编辑器中显示提示以便您了解执行的一段代码中将发生什么。路径中预计无法访问的代码块将被灰显。

随处调试

本地和远程调试

即使执行发生在远程 Web 服务器上(Docker 容器内、虚拟机内或通过 SSH 在远程主机上),您也可以获得执行的每一行代码的实时调试数据。将服务器文件映射到 PhpStorm 项目中的副本,设置 Xdebug,并在 PhpStorm 中启用侦听传入的调试连接。

JavaScript 调试

PhpStorm 附带了来自 WebStorm 的完整 JavaScript 调试器。它支持浏览器内 JavaScript 和 Node.js,您甚至可以同时启动 Xdebug 和 JavaScript 调试器。

在 Blade 和 Twig 模板内调试

在 Blade 和 Twig 模板内设置断点并对其进行分步调试,就像处理 PHP 文件一样。编译后的文件中没有模板代码引用?PhpStorm 会就设置的断点不会被捕获向您发出警告。

调试 HTTP API 调用

您可以直接从 PhpStorm 的编辑器内 HTTP 客户端调试对 PHP 服务器的 HTTP 请求。IDE 会自动将 Xdebug Cookie 添加到请求中,予以执行,并在相关 PHP 文件中的指定断点处停止。

对分析数据进行查看和分析

除了调试之外,PhpStorm 还会为 Xdebug 生成的分析数据构建可视化报告。您可以一次选择多个快照并收集聚合的分析信息。在聚合报告中,您可以从执行统计信息直接跳转到 PHP 代码中的相关函数。

将设置负担转移到 IDE

Xdebug 配置验证

PhpStorm 会从本地或远程 Web 服务器上安装的 Xdebug 获取数据,以提供灵活且强大的 IDE 内调试体验。为了使配置变得轻松无忧,IDE 会验证相关环境中的调试器设置,并针对检测到的问题提出修正建议。

零配置调试

借助零配置调试,您只需在浏览器中打开 PHP 应用程序的起始页面并从中激活调试引擎。PhpStorm 将侦听传入的调试器连接并向您提供可视化调试数据。