专注国内外云服务器
分享建站技术教程

开发者测试调试工具Xdebug安装及集成使用教程

立即购买

阿里云服务器 ¥102元/年 云数据库37.5元/年 限时

个人、企业均可购买 | 更多配置0.8折特惠

正如任何一个开发者可以证明的那样,代码在初稿之后永远不可能为生产做好准备。开发过程中的一个关键部分是调试–删除或改变代码中所有不工作的部分。

PHP的Xdebug扩展是一种流行的方法,可以根除并摧毁你代码中的所有bug。

Xdebug的一个伟大方面是它的灵活性。无论你喜欢哪种框架或开发环境,你都能找到适合你工作流程的Xdebug版本。从这里开始,掌握这个工具不会花很长时间。

本教程将深入研究Xdebug,包括安装过程、将其集成到你的设置中,以及一般使用方法。

首先,让我们给你更多关于Xdebug是什么和它做什么的背景。

  1. Xdebug介绍
  2. 为什么要使用Xdebug?
  3. 如何开启PHP错误日志
  4. 如何使用Xdebug
  5. 结合PhpStorm使用Xdebug
  6. 命令小贴士

Xdebug介绍

Xdebug是最流行的调试PHP代码的扩展之一。你将在你选择的环境中安装它,它充当一个 “步骤调试器”。

Xdebug logo

简而言之,这使你能够逐行处理你的代码,这样你就可以逐步查看代码在你的程序中是如何行动和互动的,以及调查其输出。从那里,你可以根据你的需要进行修改。

不过,Xdebug可以做得更多。

鉴于这些特性,有很多方法可以在你的工作流程中使用Xdebug(以及任何类似的调试器)。我们将在下一节中介绍这些。

为什么要使用Xdebug?

许多开发者不会有一个专门的调试工作流程,使用第三方工具和扩展。这是因为 PHP 包含了它自己的基本错误记录。你会使用as error_logvar_dumpprint等命令来查看变量和函数调用的结果。

例如,有很多片段你可以重新用于WordPress的开发–Stack Overflow上有很多这样的片段。

function log_me($message) {
if ( WP_DEBUG === true ) {
if ( is_array($message) || is_object($message) ) {
error_log( print_r($message, true) );
} else {
error_log( $message );
}
}
}

然而,这种方法也有一些重要的缺点。

后一点需要很多手工操作,尤其是当你的日常工作不是系统管理员的时候。例如,如果你想调试一个代码块,你可能会根据你定义的一个变量来添加你的代码段。然而,它可能不是问题的根源,甚至不能说明正在发生什么。

相反,像Xdebug这样的工具可以发挥其魔力,提供更大的范围。

总的来说,使用像Xdebug这样的工具是一个主动的决定,而不是一个被动的决定。你可以把步骤调试作为核心开发过程的一部分,就像实施单元测试作为测试驱动开发(TDD)的一部分。

如何开启PHP错误日志

虽然你可以在没有具体错误的情况下调试你的代码,但在没有打开Xdebug的情况下知道问题是否发生往往是很好的。这给你一个探索的起点。这不是严格意义上的必要条件,但可以成为你的链条中的一个有用部分。

要报告每一个出现的错误,你需要在相关的PHP文件的顶部添加一行。

error_reporting(E_ALL);

这是一个包罗万象的命令,你可以用ini_set函数实现同样的目的。

ini_set('error_reporting', E_ALL);

这让你可以逐个项目地改变php.ini文件中的设置。虽然你可以进入这个文件并进行手动更改,但通常使用 ini_set 来更改特定的参数是一个更好的主意:

ini_set('display_errors', '1');

一旦你把主动错误报告设置成你喜欢的样子,你就可以开始用Xdebug工作。

如何使用Xdebug

在接下来的几个部分,我们将向你展示如何使用Xdebug,包括你需要设置的步骤。虽然我们不能涵盖每个工具的各个方面,但这个快速入门指南会让你快速入门。

不过,首先,你需要安装Xdebug。让我们来看看如何做到这一点。

1. 为你的操作系统(OS)安装Xdebug

因为Xdebug可以适应任何数量的设置,所以每个设置的具体过程都会略有不同。在操作系统层面上,有一些区别。

然而,大多数用户不会想坚持使用系统级的Xdebug实例。相反,你会想把它整合到你自己的开发环境中。

2. 将Xdebug集成到你的开发环境中

一旦你为你的操作系统安装了Xdebug,你应该把它连接到你的环境中。

这里有很多支持的系统和工具,我们无法一一介绍。稍后,我们将为你提供PhpStorm的说明。即便如此,还有很多其他流行的环境可以选择。下面是我们的一些顶级推荐。

Variing Vagrant Vagrants(VVV)

VVV是Make WordPress网站上的命名环境之一。

Varying Vagrant Vagrants标志

好消息是,VVV已经包括了Xdebug的一个版本,但你需要激活它。你可以在一个终端窗口中使用安全壳(SSH)来完成这个任务。

vagrant ssh -c "switch_php_debugmod xdebug"

不过,这对性能有一点影响,如果你提供你的网站,你将需要把这个选项重新打开。

Laravel Valet

对于一些用户来说, Laravel的Valet代表了一个近乎完美的网络开发环境. 更棒的是, 你可以将Xdebug与之整合.

要做到这一点, 你需要为调试器创建一个配置文件. 你可以在命令行中使用 php --ini 找到你自己的路径, 这将返回一些不同的文件路径:

终端机显示配置文件的路径列表

接下来,在其他.ini文件的路径上创建一个新的xdebug.ini文件。在我们的例子中,它位于/opt/homebrew/etc/php/7.4/conf.d

一旦你打开这个新文件,也要打开加载的配置文件(你的主php.ini文件)的路径。两者都打开后,在底部添加以下内容。

一旦你保存了你的改动,从终端运行 valet restart ,然后在你的网站的一个文件中加入 phpinfo(); exit; 。你想通过在浏览器中快速加载页面来检查这是否有效。

PHP信息界面

注意你可能需要用 sudo brew services restart php 来重启PHP,同时用 php --info | grep xdebug来检查你的系统安装Xdebug是否正确。你会注意到输出中的Xdebug专用行:

从这里,你可以寻求将Xdebug纳入你选择的编码编辑器中。

XAMPP

与Valet一样,XAMPP的过程也有几个部分。然而,Windows和macOS版本有两个不同的过程。

首先安装XAMPP,然后快速检查你的系统中是否存在php_xdebug.dll文件(Windows)或xdebug.so文件(macOS)。

显示XAMPP文件测试的终端窗口

如果该文件存在,就可以继续配置了。否则,首先需要下载适合Windows的二进制文件–为你喜欢的PHP版本下载一个64位的文件–或者如果你用的是Mac,则需要安装更多的依赖项。

对于 Windows,重命名 DLL 文件 php_xdebug.dll,然后把它移到 xamppphpext 文件路径中。接下来,在你喜欢的代码编辑器中打开xamppphpphp.ini文件并添加以下内容:

output_buffering = Off

在 [XDebug] 部分,添加以下三行。

zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=trigger

一旦你保存了你的更改,重新启动Apache并测试Xdebug。

对于Mac,你要确保你在终端实例中使用 xcode-select --install 来安装Xcode命令行工具。之后,有三个软件包你要用Homebrew来安装。

brew install autoconf automake libtool

在某些情况下,你还需要重新安装XAMPP以获得核心程序和 “开发者文件”。你应该可以只重新安装这些文件,但你要先对你现有的设置进行备份。

接下来,在你的系统上导航到Xdebug源文件夹的下载,解压TGZ文件。在一个终端窗口中,导航到该目录并运行以下程序:

phpize
pecl install xdebug

注意,你可能也需要在这里使用 sudo 。从这里,你可以编辑XAMPP的php.ini文件。对于大多数macOS安装,你可以在/Applications/XAMPP/xamppfiles/etc/php.ini中找到它。在这个目录中,你也会找到你的xdebug.so文件的路径–记下它并使用它来代替本片段中的文件路径占位符。

[xdebug]
zend_extension=/path/to/xdebug.so
xdebug.mode=develop,degug
xdebug.start_with_request=yes

为了测试这是否有效,在htdocs XAMPP主目录下创建一个新的xdebug_info.php文件。在里面,添加以下内容:

<?php xdebug_info();

…然后刷新Apache并在浏览器中测试Xdebug。

结合PhpStorm使用Xdebug

一旦你通过操作系统和你的开发环境安装了Xdebug,你还需要查看调试器本身。你将通过你选择的代码编辑器或集成开发环境(IDE)来做这件事。就像你的环境一样,有很多可供选择的,每一个都可能有不同的方法。

这就是说,许多开发人员选择使用JetBrains的PhpStorm。事实上,PhpStorm提供了 “感知WordPress的协助“–而且它也是一个受欢迎的选择,因为有许多其他原因。

PhpStorm界面

JetBrains 网站包括连接 Xdebug 和 PhpStorm 的完整说明,但我们将在此回顾一下。

首先,在Preferences窗格中导航到Languages & Frameworks > PHP页面。在这里,打开CLI Interpreter下拉字段旁边的More Items串菜单:

在PhpStorm中选择一个CLI解释器

这将显示一些关于你的 PHP 版本和解释器的进一步细节。如果你点击Configuration file选项旁边的More items省略号,你会看到php.ini文件的完整路径。

在PhpStorm中修改PHP配置

接下来你将使用这个PHP文件来继续设置过程

在php.ini文件中工作

这里的第一个任务是编辑出任何影响 Xdebug 如何与 PhpStorm 一起工作的行。

php.ini 文件中,寻找以下几行,并将其删除或注释掉。

zend_extension=
zend_extension=

这些行不会在所有情况下出现,所以如果你没有看到它们,不要惊慌。

接下来,在文件中添加以下内容。

[xdebug]
zend_extension="xdebug.so"
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=""

关于这套代码,有几件事需要注意。

一旦你添加了这些,保存并关闭文件,然后从命令行测试PHP版本(使用 php --version)。

使用macOS终端测试PHP和Xdebug的当前安装

如果你有一个工作版本的Xdebug,它将显示为PHP扩展之一。你也可以将 phpinfo(); 添加到一个新文件中,并在浏览器中进行测试。

这就是让Xdebug作为PhpStorm的默认调试器所需要做的一切。使用它之前的最后一步是安装一个浏览器辅助扩展。

安装一个浏览器辅助扩展

你需要在你的浏览器和 PhpStorm 之间建立的最后一个关键连接,是通过激活服务器上的步骤调试来完成的。虽然你可以在命令行中使用特殊的 GET 或 POST 值来做这件事,但使用一个扩展是更直接的。

我们推荐使用专用的Xdebug Helper扩展。你可以在你选择的浏览器上安装它:

如果你想探索其他扩展,JetBrains网站为最流行的浏览器提供了一些额外的选择。

一旦你安装了你选择的浏览器扩展,你不应该再调整任何进一步的配置设置。从这里,你可以开始使用PhpStorm的Xdebug。

使用Xdebug

虽然我们在这里使用PhpStorm,但你会看到不同IDE之间有类似的布局和界面–尽管也会有一些明显的区别。

有几个概念结合起来形成了整个调试体验。

第一步是激活监听–没有监听,你就无法调试任何东西。要做到这一点,请点击工具栏上的Run > Start Listening for PHP Debug Connections选项。

在PhpStorm中打开的运行菜单

作为一种选择,你可以点击PhpStorm工具栏中的 “telephone”图标:

使用PhpStorm工具条内的电话图标监听PHP调试连接

这两个选项中的任何一个都会开始监听连接。

从这里,你可以开始在代码编辑器的沟槽中设置断点。一个红点表示一个断点,你可以点击它来激活:

在PhpStorm编辑页面的沟槽内设置断点

当你想调试你的代码时,最直接的方法是开始监听,设置断点,然后前往浏览器中的特定页面。在浏览器中找到你的扩展图标,然后点击它,选择 “Debug”选项:

在浏览器工具栏内选择调试选项,使用一个专门的扩展

这将在PhpStorm中打开调试器并提供好消息或坏消息:

使用PhpStorm调试器与Xdebug

如果你右键单击各种值、属性、参数和变量,你将能够访问一个进一步的上下文菜单。这为你提供了大量的额外空间来测试和调试你的代码:

在PhpStorm调试器中使用右键上下文菜单来设置新值

例如,你可以沿着路径为变量设置不同的值。这可能是故意要破坏你的代码,看看会发生什么,也可能是测试已经需要修复的代码的一种方式。无论哪种方式,这都为你提供了一个极好的方法来调试你的代码,而不需要先改变它。

命令小贴士

在我们结束这篇文章之前,我们应该提到快捷键。

像许多其他软件一样,有各种方法可以仅使用键盘在Xdebug(和PhpStorm)中导航。事实上,你甚至可以使用命令行来调试PHP脚本。

一旦Xdebug启动并运行,你可以使用以下命令来进行操作:

命令 快捷方式
指定要监听的端口(如 [9003] -p [value]
Sets a breakpoint on the specified line for the file path given. breakpoint_set -t line file:/// -n
在给定文件路径的指定行上设置一个断点 run
步入下一个可执行行 step_into
列出当前范围内的变量和值 context_get
显示指定属性的值 property_get -n

虽然您的特定代码编辑器将有自己的专用快捷方式,但这里的重点是PhpStorm。请看下面的键盘快捷键表,了解如何将Xdebug与PhpStorm配合使用:

命令 Windows macOS
查找动作 Ctrl + Shift + A Shift + Cmd + A
打开调试器 Shift + F9 Ctrl + D
切换断点 Control + F8 Cmd + F8
进入 F7 F7
跨越 F8 F8
查看断点 Ctrl + Shift + F8 Shift + Cmd + F8
恢复程序 F9 F9
评估当前表达式 Alt + F8 Option + F8

评估当前表达式庆幸的是,这里没有太多需要记忆的东西。你必须打开调试器,设置每行的断点,监听连接,并运行你的脚本。

然而,如果你需要一个特定任务的快捷方式,你可以使用PhpStorm查找动作命令。

在PhpStorm中使用查找动作菜单

一旦你开始在这个空间里打字,你就会看到一个动态的命令和相关的快捷键列表。你还可以通过Help > Keyboard Shortcuts PDF菜单找到所有键盘快捷键的PDF版本。

如果你想在使用鼠标工作时更多地实时查看快捷方式,JetBrains提供了Key Promoter X插件。

PhpStorm界面显示Key Promoter X的通知

这个方便的工具将显示你最近执行的动作的通知,以及其相关的键盘快捷键。一旦你学会并使用了这些快捷键,你就可以逐步淘汰这个插件,恢复你屏幕上的宝贵空间。

小结

调试的实践已经从它卑微的开始走过了漫长的道路;现在它所包含的范围比它的祖先所能想象的要广得多。要想在修复PHP代码时进行彻底的工作,你需要使用一个合格的工具。有许多优秀的扩展和工具可供选择,但Xdebug是一个有争议的领跑者。

正如我们所看到的,Xdebug可以适应甚至是最折衷的代码编辑器的口味,当它与PhpStorm搭配时尤其出色。然而,无论你的设置如何,通常都会有一个Xdebug的版本来满足你的需求。总的来说,它是一个强大、灵活和直观的工具。

文章来源于互联网:开发者测试调试工具Xdebug安装及集成使用教程

相关推荐: 8个顶级WooCommerce主题协助您搭建独立电商网站

WordPress网站的布局主要取决于它的主题,不是吗?如果您探索Themeforest,您会发现无数主题可用于您的网站。最重要的是,WordPress.org还提供了无数可以在您的网站中使用的免费主题。 无论您是否需要电子商务网站、商业网站、教育网站或博客网…

赞(0)
未经允许不得转载:吾上云 » 开发者测试调试工具Xdebug安装及集成使用教程
分享到: 更多 (0)
  • 阿里云
    基础型云服务器

    1核CPU

    2G内存

    40G硬盘

    1M带宽

    独立IP

    分布式存储

    适合企业官网、个人站长类网站

    ¥89/1年 原价¥903.40

  • 阿里云
    超值型云服务器

    2核CPU

    4G内存

    40G硬盘

    3M带宽

    独立IP

    分布式存储

    适合企业官网、行业门户类网站

    ¥899/3年 原价¥8281

  • 阿里云
    高性能云服务器

    2核CPU

    8G内存

    40G硬盘

    5M带宽

    独立IP

    分布式存储

    适合电商、数据库等企业级应用

    ¥1399/3年¥14765

  • 腾讯云
    基础型云服务器

    1核CPU

    2G内存

    50G硬盘

    1M带宽

    独立IP

    分布式存储

    适合企业官网、个人站长类网站

    ¥95/1年 原价¥834

  • 腾讯云
    超值型云服务器

    1核CPU

    2G内存

    50G硬盘

    1M带宽

    独立IP

    分布式存储

    适合企业官网、行业门户类网站

    ¥288/3年 原价¥2502

  • 腾讯云
    高性能云服务器

    4核CPU

    8G内存

    50G硬盘

    5M带宽

    独立IP

    分布式存储

    适合电商、数据库等企业级应用

    ¥2188/3年¥13986

  • 阿里云
    基础型云服务器

    1核CPU

    2G内存

    40G硬盘

    1M带宽

    独立IP

    分布式存储

    适合企业官网、个人站长类网站

    ¥89/1年 原价¥903.40

  • 阿里云
    超值型云服务器

    2核CPU

    4G内存

    40G硬盘

    3M带宽

    独立IP

    分布式存储

    适合企业官网、行业门户类网站

    ¥899/3年 原价¥8281

  • 阿里云
    高性能云服务器

    2核CPU

    8G内存

    40G硬盘

    5M带宽

    独立IP

    分布式存储

    适合电商、数据库等企业级应用

    ¥1399/3年¥14765

  • 腾讯云
    基础型云服务器

    1核CPU

    2G内存

    50G硬盘

    1M带宽

    独立IP

    分布式存储

    适合企业官网、个人站长类网站

    ¥95/1年 原价¥834

  • 腾讯云
    超值型云服务器

    1核CPU

    2G内存

    50G硬盘

    1M带宽

    独立IP

    分布式存储

    适合企业官网、行业门户类网站

    ¥288/3年 原价¥2502

  • 腾讯云
    高性能云服务器

    4核CPU

    8G内存

    50G硬盘

    5M带宽

    独立IP

    分布式存储

    适合电商、数据库等企业级应用

    ¥2188/3年¥13986

评论 抢沙发

评论前必须登录!

 

吾上云 专注服务器选购

购买云服务器联系我们