PhpStorm之优雅的调试 Hyperf

1. 前言

在进行 PHP 开发调试时,我们往往需要借助于 IDE 工具来提高开发效率。PhpStorm 是大众比较喜欢的一个 PHP IDE,凭借着其丰富的工具和插件,能够方便的帮助我们完成调试与开发。而 Hyperf 则是近期非常流行的一款基于 Swoole 开发的 PHP 框架,使用其能够高效地进行 API 等后端接口开发。

本篇文章旨在介绍如何在 PhpStorm 上优雅地调试 Hyperf 应用,使得我们能够在开发的过程中更加高效、准确地追踪代码的运行状态及其变化。同时,我们也可以通过此方法,快速地发现潜在的错误,进而优化代码。

2. PhpStorm 环境配置

2.1 配置 xdebug

为了能够在 PhpStorm 上进行 PHP 调试,我们需要先配置 xdebug。我们可以通过如下方式安装 xdebug 扩展:

pecl install xdebug

接下来,在 PHP 的配置文件(php.ini)中添加如下配置:

[xdebug]

zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so"

xdebug.remote_enable=1

xdebug.remote_host=127.0.0.1

xdebug.remote_port=9000

xdebug.idekey=PHPSTORM

其中的 zend_extension 配置要根据实际情况进行调整,xdebug.remote_host 一般为本地 IP,xdebug.remote_port 为 PhpStorm 的端口号(默认为 9000),xdebug.idekey 为 PhpStorm 的连接密钥。

2.2 配置 PhpStorm

在 PhpStorm 中,我们需要编辑配置并启用 xdebug。进入“Settings -> Languages & Frameworks -> PHP -> Debug”选项卡,如下图所示:

![pageresource](https://cdn.luogu.com.cn/upload/image_hosting/ac0tfqcy.png)

我们可以勾选“Force break at first line when no path mapping specified”,这样在调试时,我们就可以暂停代码的执行,并选择相应的后台任务。接下来,我们需要配置 xdebug 的端口号及勾选“Break at first line in PHP scripts”选项,如下图所示:

![pageresource](https://cdn.luogu.com.cn/upload/image_hosting/fpmq5i35.png)

配置完成后,我们就可以开始在 PhpStorm 上愉快地调试 Hyperf 应用了。

3. PhpStorm 调试

3.1 准备调试环境

在进行调试之前,我们需要先配置 Hyperf 应用的启动方式。若是使用的是 HTTP 应用,则需要在启动命令中加上--server参数。若是使用的是 WebSocket 服务,则需要启动 WebSocket 服务时,加上 -d 参数。

下面以 HTTP 应用为例,启动 Hyperf 项目:

php bin/hyperf.php start --server

当出现“Server Start Success”字样时,说明 Hyperf 项目已经成功启动。此时,我们就可以在 PhpStorm 上开始调试了。

3.2 配置 PhpStorm 调试信息

在启动过程中,我们需要在 PhpStorm 中进行相应的调试信息编辑及配置。具体方法如下图所示:

![pageresource](https://cdn.luogu.com.cn/upload/image_hosting/6fnxcd5n.png)

在编辑启动配置时,我们需要在 Server 标签页下添加新的服务端口,如下图所示:

![pageresource](https://cdn.luogu.com.cn/upload/image_hosting/ygv9m8ry.png)

其中,port 表示服务的端口号,随意指定即可。为了标记该端口来自 Hyperf 应用,我们还需要在“Use path mappings”选项里添加好映射,请勾选“Filter debug connection by IDE key”以方便调试。

3.3 开始调试

当前面的配置都完成以后,我们可以点击“Start Listening for PHP Debug Connections”按钮,开始等待 xdebug 的连接。此时,访问 Hyperf 应用代码时, PhpStorm 就会提示我们是否要进入调试模式来跟踪代码的执行情况了。此时,我们只需要按下 F5 即可开始逐行调试。

3.4 使用断点来调试

有时候,我们需要精确定位代码运行的位置,以便于更快发现潜在的错误。这时候,我们可以使用断点(Breakpoints)。在代码中点击需要添加断点的行,即可在 PhpStorm 中进行断点的设置。接下来,运行代码并在对应处停止即可进入调试状态。

4. 结语

本篇文章主要介绍了如何在 PhpStorm 上优雅地调试 Hyperf 应用。通过灵活使用 PhpStorm 的调试工具,我们可以快速地找出代码中的问题,从而提高代码的质量和可靠性。希望能够对大家进行一些参考和帮助。