PHPStorm 是一款功能强大的 IDE,我们可以通过它快速地进行代码编辑、调试和测试。如果我们需要开发和调试 Hyperf 应用程序,这里介绍一种优雅的调试方法。
步骤:
- 安装 Hyperf Debug 插件
在代码编辑器 PHPStorm 中,找到 Settings -> Plugins 进入插件管理页面,搜索 Hyperf Debug 插件并安装。
- 配置 PHP 的 XDebug
在 PHP 环境中安装并启用 XDebug 扩展。打开 php.ini 文件,在尾部加入以下配置。
[xdebug]
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_port=9003
xdebug.idekey=PHPSTORM
其中,xdebug.idekey 的值必须设置为 PHPSTORM。
- 配置 Hyperf Debug
在 Hyperf 应用程序的配置文件 config/autoload/server.php 中,加入以下配置。
'debug' => [
'enabled' => true,
'handler' => \Hyperf\HttpServer\Server::class,
'server' => 'tcp://0.0.0.0:9502',
'env' => ['dev', 'local'], // 支持多个环境
],
其中,handler 的值为 Hyperf HttpServer 的类名,server 的值为 XDebug 连接的地址和端口。
- 创建 PHPStorm Debug Configuration
在 PHPStorm 中,找到 Run -> Edit Configurations 进入配置页面,点击左上角的 + 号创建一个 PHP Remote Debug。
在配置页面中,填写以下内容:
- Name:自定义名称
- Server:选择 Host(我们需要在后面创建)
- IDE Key:设置为 PHPSTORM
- Filter debug connection by IDE key:勾选
点击右侧的 Create New Server 创建一个 Server 配置。
在弹出的窗口中,填写以下内容:
- Name:自定义名称
- Host:填写 Hyperf 应用程序运行所在的服务器 IP 地址
- Port:填写 Hyperf Debug 的监听端口号
- Debugger:选择 XDebug
- Use path mappings:勾选,并添加映射
点击 OK 完成配置。
- 运行 Hyperf 应用程序
在应用程序所在目录下,运行以下命令启动 Hyperf 应用程序。
php bin/hyperf.php start
此时,应用程序会监听 Hyperf Debug 的端口,等待 XDebug 的连接。
- 开始调试
在 PHPStorm 中,打开需要调试的 PHP 文件,在左侧代码区域的行号处添加断点,然后点击右键选择 Debug XX 即可开始调试。
示例一:
在 User.php 文件的 index 方法中添加断点,然后通过浏览器访问该方法对应的路由,在 PHPStorm 中会自动停留在断点处。
use Hyperf\HttpServer\Annotation\AutoController;
/**
* @AutoController(prefix="user")
*/
class UserController
{
public function index()
{
$users = [
['name' => 'Tom', 'age' => 20],
['name' => 'Jerry', 'age' => 22],
['name' => 'Spike', 'age' => 24],
];
return $users;
}
}
示例二:
在测试用例 TestCest.php 文件的 index 方法中添加断点,然后在命令行中执行 testing 命令,可以在 PHPStorm 中看到测试用例执行的完整流程。
use Tests\TestCase;
class TestCest
{
public function indexTest(TestCase $I)
{
$response = $I->get('/user');
$data = json_decode($response->getBody()->getContents(), true);
$I->assertIsArray($data);
$I->assertCount(3, $data);
$I->assertEquals('Tom', $data[0]['name']);
}
}
通过上述方法,我们可以实现轻松快速地进行 Hyerpf 应用程序的调试。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PhpStorm 如何优雅的调试Hyperf的方法步骤 - Python技术站