使用 PHP 网页调试配置进行调试
在这种调试模式下,PhpStorm 完全控制调试过程:它启动应用程序,打开浏览器,并根据PHP 网页调试配置激活调试引擎。
PHP 网页调试配置告诉 PhpStorm 访问应用程序起始页面的URL 地址、打开起始页面的浏览器以及要使用的调试服务器配置。
您还可以指定您希望 PhpStorm 在调试期间忽略的脚本请求。当您的应用程序包含使用 AJAX 的脚本时,此方法可能很有用。假设您有一个 menu-ajax-script.php 可以“重新加载”您的网页的一部分。该脚本可以正常工作,因此您无需对其进行调试。但是,在调试会话期间仍会请求此脚本。要忽略此脚本的传入连接,请将menu-ajax-script.php脚本添加到跳过的路径列表中。
准备调试引擎
在开始调试之前,请确保已正确安装和配置调试引擎。PhpStorm 支持使用两种最流行的工具进行调试:Xdebug和Zend Debugger。这些工具不能同时使用,因为它们相互阻挡。为避免此问题,您需要更新php.ini文件中的相应部分,如配置 Xdebug和配置 Zend Debugger中所述。
在编辑器中打开活动的php.ini文件:
在“设置/首选项”对话框 ( Ctrl+Alt+S) 中,单击PHP。
在打开的PHP页面上,单击CLI Interpreter字段旁边的。
在打开的CLI 解释器对话框中,配置文件只读字段显示活动php.ini文件的路径。单击在编辑器中打开。
设置断点
断点是用于在调试会话期间触发操作的源代码标记。通常,设置断点的目的是暂停程序执行以允许您检查程序数据。但是,PhpStorm 可以使用断点作为各种不同操作的触发器。在调试过程中可以随时设置断点。您的断点不会直接影响您的源文件,但断点及其设置会与您的 PhpStorm 项目一起保存,因此您可以在调试会话中重复使用它们。
将插入符号放在源代码的所需行处。
断点可以在php、html和其他类型的文件中的 PHP 上下文中设置。行断点只能在可执行行上设置,而不能在注释、声明或空行上设置。
执行以下操作之一:
单击要切换断点的行处的装订线区域。
从主菜单中,选择
。按Ctrl+F8。
创建 PHP Web Page 类型的调试配置
通过执行以下操作之一打开“运行/调试配置”对话框:
从主菜单中,选择
。按Alt+Shift+F10,然后按0显示编辑配置对话框或从弹出窗口中选择配置并按F4。
单击工具栏上的 或按Insert。从列表中,选择PHP Web Page配置类型。PHP 网页对话框打开。
指定配置名称。
从服务器列表中选择适用的调试服务器配置或单击浏览 。并在打开的服务器对话框中定义调试服务器配置,如创建 PHP 调试服务器配置中所述。
在Start URL字段中,输入实现应用程序起始页的文件的服务器路径。指定相对于服务器配置根目录的路径(服务器配置根目录是本地或远程服务器上可通过服务器配置访问的文件树中的最高文件夹。对于就地服务器,它是项目根目录。)。下面的只读字段显示了应用程序起始页的 URL 地址。URL 地址是在您键入时动态组成的。
指定要在其中打开应用程序的浏览器。从浏览器列表中选择一个配置的浏览器,或单击浏览 并在打开的Web 浏览器和预览对话框中指定另一个浏览器。
启动调试会话并检查挂起的程序
要开始调试,请单击工具栏上的调试按钮。
一旦调试器在到达第一个断点时暂停,通过分析框架检查应用程序。框架对应于活动的方法或函数调用,并存储被调用方法或函数的局部变量、参数以及启用表达式评估的代码上下文。所有当前活动的框架都显示在Debug 工具窗口的Frames窗格中,您可以在其中切换它们并在Variables和Watches窗格中分析其中存储的信息。有关更多详细信息,请参阅检查暂停程序部分。
继续运行程序并在它再次挂起后立即检查它的帧。
要手动控制程序执行,请使用Run菜单或工具栏按钮下的命令逐步执行代码: F7、 Shift+F8、 F8等。有关更多详细信息,请参阅逐步执行程序。
要让程序自动运行到下一个断点,请通过选择
或按F9。
指定脚本以跳过请求
当您的应用程序包含使用 AJAX 的脚本时,此方法可能很有用。假设您有一个 menu-ajax-script.php 可以“重新加载”您的网页的一部分。该脚本可以正常工作,因此您无需对其进行调试。但是,在调试会话期间仍会请求此脚本。要忽略此脚本的传入连接,请将menu-ajax-script.php脚本添加到跳过的路径列表中。
在设置/首选项对话框 ( Ctrl+Alt+S) 中,转到 。
在打开的Skipped Paths页面上,配置脚本和文件夹的“忽略列表”,如果 PhpStorm 接收到传入连接,则不会调用脚本。
要向列表中添加新条目,请单击或按Alt+Insert。然后单击并在打开的对话框中选择要跳过连接的文件或文件夹。
要从列表中删除条目,请选择它并单击或按Alt+Delete。该脚本现在将在收到对它的请求时执行。
要让 PhpStorm 在每次收到要跳过的脚本的请求时通知您,请选中通知跳过的路径复选框。