阅读(3788) (11)

IntelliJ IDEA:调试PHP HTTP请求

2019-03-22 15:19:34 更新

调试PHP HTTP请求

此功能仅在Ultimate版本中受支持。
以下内容仅在安装并启用PHP插件时有效!

除了调试整个应用程序外,您还可以调试单独的HTTP请求。当您真正对通过多个步骤访问的特定页面感兴趣时,这很有帮助,但出于这个或那个原因,您无法将此页面指定为调试的起始页面,例如,因为你需要带着特定的数据“来到”这个页面。

通过PHP HTTP请求运行配置,支持在IntelliJ IDEA中调试PHP HTTP请求。根据配置设置,IntelliJ IDEA组成要运行的请求。

准备调试引擎

在开始调试之前,请确保您已正确安装和配置调试引擎。IntelliJ IDEA支持使用两种最流行的工具进行调试: Xdebug和Zend Debugger。这些工具不能同时使用,因为它们相互阻挡。要避免此问题,您需要更新php.ini 文件中的相应部分,如配置Xdebug配置Zend调试器中所述。

要在编辑器中打开活动的php.ini文件,请执行以下操作:

  1. 在“设置/首选项”对话框(Ctrl+Alt+S)中,单击“语言和框架”下的“PHP”。
  2. 在打开的PHP页面上,单击“CLI解释器”字段旁边的browseButton
  3. 在打开的“CLI解释器”对话框中,“配置文件”只读字段显示活动php.ini文件的路径。单击“在编辑器中打开”。

设置断点

断点是用于在调试会话期间触发操作的源代码标记。通常,设置断点的目的是暂停程序执行以允许您检查程序数据。但是,IntelliJ IDEA可以使用断点作为各种不同操作的触发器。可以在调试过程中随时设置断点。您的断点不会直接影响源文件,但断点及其设置将与IntelliJ IDEA项目一起保存,以便您可以在调试会话中重复使用它们。

  1. 将插入符号放在源代码的所需行上。
    断点可以在php,html和其他类型的文件中的PHP上下文中设置。行断点只能在可执行行上设置,而不能在注释,声明或空行上设置。
  2. 执行以下操作之一:
    • 在要切换断点的行上单击左侧装订线区域。
    • 在主菜单上,选择:运行|切换行断点。
    • 按下Ctrl+F8。

创建PHP HTTP请求类型的调试配置

IntelliJ IDEA将此配置中指定的设置粘贴到PHP HTTP请求中。

  1. 通过执行以下操作之一打开“运行/调试配置”对话框:
    • 在主菜单上,选择:运行|编辑配置。
    • 按下Shift+Alt+F10,然后按0显示“编辑配置”对话框或从弹出窗口中选择配置并按下F4。
  2. 单击工具栏上的 图标一般添加svg,或按下Insert。从下拉列表中,选择PHP HTTP请求配置类型。将打开“PHP HTTP请求”对话框。
  3. 指定配置名称。
  4. 在“服务器”下拉列表中,指定调试服务器配置以与执行应用程序的Web服务器进行交互。选择一个现有配置,或单击“浏览( browseButton.png)”并在“服务器”对话框中定义调试服务器配置,该对话框将按照创建PHP调试服务器配置中的说明打开。
  5. 在URL文本框中,填写要调试的请求的host元素。键入相对于调试服务器配置中指定的主机的路径。在您键入时,IntelliJ IDEA即时组成URL地址并将其显示在文本框下方。
  6. 指定是否要将任何数据带到目标页面。从“请求方法”下拉列表中,选择相关的请求类型:
    • 要在不带任何数据的情况下访问页面,请选择GET。
    • 要访问包含变量中保存的某些数据的页面,请选择POST 并在“请求正文”文本框中键入相关变量。
      默认情况下,如果未明确指定,则在请求编码中使用项目编码,例如:
      header('Content-type: text/html;charset=utf-8');
      该项目编码是在“文件编码”页面指定的,该页面位于"设置/首选项" 对话框的 "编辑器" 节点下。
  7. 在“查询”文本框中,键入请求的查询字符串。此字符串将附加到?符号后面的请求中。
  8. 准备好后, 单击“确定”。

启动调试会话并检查已暂停的程序

  1. 要开始调试,请单击工具栏上的“调试( 图标动作startDebugger svg)”按钮。
  2. 一旦调试器在到达第一个断点时暂停,请通过分析框架来检查应用程序。框架对应于一个激活的方法或函数调用,并且存储所调用的方法或函数,参数,以及启用表达式求值的代码上下文的局部变量。所有当前活动的框架都显示在“调试”工具窗口的“框架”窗格中,您可以在其中切换它们并分析存储在“变量”和“监视”窗格中的信息。
  3. 继续运行程序并在其再次暂停时检查其框架。
    • 要手动控制程序执行,请使用“运行”菜单中的命令或工具栏按钮下的命令:Step Into(F7),Step Out(Shift+F8),Step Over(F8)等来逐步执行代码。
    • 要使程序自动运行到下一个断点,请通过选择:运行|恢复程序,或按下F9来恢复会话。