codecamp

IntelliJ IDEA:零配置调试

零配置调试

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

在此调试模式下,IntelliJ IDEA完全控制调试过程:它启动应用程序,打开浏览器,并根据PHP Web页面调试配置激活调试引擎。

启动调试会话

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

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

要启动零配置调试会话,请执行以下常规步骤。

验证调试引擎安装

请执行以下任何操作:

  • 在命令行中,运行该php --version命令。输出应列出已安装扩展中的调试引擎:
    Xdebug:
    安装了Xdebug扩展
    Zend debugger:
    ps_terminal_zend_debugger_installed
  • 创建一个包含phpinfo();函数调用的php文件。然后在浏览器中打开此文件。该phpinfo输出应该包含您的调试引擎的部分:
    Xdebug:
    调试引擎已安装
    Zend debugger:
    ps_zend_debugger_enabled_browser

您还可以在IntelliJ IDEA中验证调试引擎的配置,以确保提供的配置参数正确。

启用监听传入调试连接

  • 切换IntelliJ IDEA工具栏上的“开始监听PHP调试连接”按钮 开始监听php调试连接,使其更改为 停止监听php调试连接。之后,IntelliJ IDEA开始监听当前项目中使用的调试引擎的端口。调试端口在“设置/首选项”对话框(Ctrl+Alt+S)的“语言和框架|PHP|调试”的IntelliJ IDEA级别中设置。

    开始监听调试连接

在代码中设置断点

  • 通过执行以下任一操作在代码中设置断点:

    • 在要切换断点的行上单击左侧装订线区域。

    • 在主菜单上,选择:运行|切换行断点。

    • 按下Ctrl+F8。

    设置断点

    或者,选择:运行|在PHP脚本的第一行中断,以便在建立与IntelliJ IDEA的连接后立即停止调试器(而不是在达到第一个断点之前自动运行)。

在服务器上激活调试器

  • 要从浏览器启用和停止调试引擎,您需要设置一个特殊的GET/POSTCOOKIE参数。您可以在php.ini配置文件中手动执行此操作,也可以使用可用的浏览器调试扩展之一。如果您使用的浏览器的扩展不可用,您可以生成的“启动调试器/停止调试器”书签,并将它们添加到浏览器的工具栏。

    在浏览器中激活调试扩展:

    Chrome中的Xdebug助手

启动调试会话

  1. 在浏览器中重新加载页面并返回到IntelliJ IDEA。在“从<调试引擎>传入连接”对话框中,选择路径映射,以便IntelliJ IDEA可以将Web服务器上的远程文件映射到项目中的本地文件。如果您定义了部署配置,则IntelliJ IDEA将根据您在该配置中设置的路径配置映射。

    传入调试器连接Xdebug
  2. 到达断点后,调试器将被暂停。您现在可以调查该应用程序。

    应用程序在断点处停止
  3. 继续运行程序并在其再次暂停时检查其框架。

    • 要手动控制程序执行,请使用“运行”菜单下的命令或工具栏按钮:Step Into(F7),Step Out(Shift+F8),Step Over(F8)等来逐步执行代码。

    • 要使程序自动运行到下一个断点,请通过选择:运行|恢复程序,或按下F9来恢复会话。

指定要跳过请求的脚本

您还可以指定希望IntelliJ IDEA在调试期间忽略的脚本请求。当您的应用程序包含使用AJAX的脚本时,此方法很有用。假设你有一个menu-ajax-script.php,它“重新加载”你网页的一部分。此脚本正常工作,因此您无需进行调试。但是,在调试会话期间仍会请求此脚本。要忽略与此脚本的传入连接,请将menu-ajax-script.php脚本添加到跳过的路径列表中。

  1. 在“设置/首选项”对话框(Ctrl+Alt+S)中,导航到:语言和框架|PHP,并单击“调试”下的“跳过路径”。
  2. 在打开的“跳过路径”页面上,配置脚本和文件夹的“忽略列表”,如果IntelliJ IDEA接收到传入连接,则不会调用脚本。
    • 要向列表中添加新条目,请单击“添加( 图标一般添加svg)”按钮或按下Alt+Insert。然后单击“浏览( browseButton)”并在打开的对话框中选择要跳过连接的文件或文件夹。
    • 要从列表中删除条目,请选择该条目并单击“删除( 图标一般删除svg)”按钮或按下Alt+Delete。该脚本现在将在收到请求后执行。
  3. 要让IntelliJ IDEA在每次收到要跳过的脚本的请求时通知您,请选中“通知跳过的路径”复选框。
IntelliJ IDEA:使用PHP Web页面调试配置进行调试
IntelliJ IDEA:调试PHP HTTP请求
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }