基于Yasd的Hyperf框架调试

准备

在这里插入图片描述

如果使用PhpStorm调试,仅需要上图所说的这几步

  • 安装 Xdebug 或者 Zend Debugger.
  • 开启 Start Listening for PHP Debug Connections.
  • 配置 Debug 端口,别忘记勾选 Can accept external connections.
  • 打好断点,启动网页进行调试.

安装

安装boost扩展

macOS

brew install boost

Ubuntu

apt install libboost-all-dev

CentOS

yum install boost boost-devel

安装yasd

git clone https://github.com/swoole/yasd.git
phpize --clean && \
phpize && \
./configure && \
make clean && \
make && \
make install

设置 php.ini

zend_extension=yasd

通过 php --ri yasd 查看配置情况

IDE调试模式
zend_extension=yasd
yasd.debug_mode=remote
yasd.remote_host=127.0.0.1
yasd.remote_port=9999

注:因为9000端口与php-fpm冲突,这里设置成9999或者其他,你可以使用其他未使用的端口作为调试端口,修改端口后应与PhpStorm,VSCode里配置的端口保持一致

cmd调试模式
zend_extension=yasd
yasd.debug_mode=cmd

注:Yasd已经支持PhpStorm,VSCode断点调试,当配置了IDE模式调试后,yasd就直接可以使用断点调试了,对于简单的调试可以参考文末的参考链接

配置 PhpStorm

PHP 运行环境设置

由于yasd是基于php -e 命令生成的额外调试信息,而PhpStorm默认的调试并不带有 -e 的参数,所以我们需要在单元测试前做一些改进,我是通过编写一个shell脚本的方式来实现的

cat ~/bin/php

#!/usr/bin/env zsh
/usr/local/bin/php -e "$@"
phpstorm设置

然后在PhpStorm中添加该脚本作为php的解释器,在PhpStorm的Preferences -> Languages & Frameworks -> PHP面板中添加CLI Interpreters,选择配置的解释器后点击Apply。
在这里插入图片描述

PHPUnit设置

因为Hyperf是基于Swoole协程框架,原生的phpunit是无法调试的,需要使用Hyperf提供的co-phpunit,可以在PhpStorm的Preferences -> Languages & Frameworks -> PHP -> Test Frameworks面板中本地环境
点击面板中的“+”添加PHPUnit Local,选择Path to phpunit.phar,在Path中选择当前项目的vendor/bin/co-phpunit文件,在Run Tester的Default configration file中选择当前项目中的phpunit.xml文件,点击Apply。
在这里插入图片描述
调试单元测试前,需要开启 Start Listening for PHP Debug Connections.
在这里插入图片描述
之后就可以像之前调试Lavavel项目那样断点调试Hyperf了。

注意

当开启Start Listening for PHP Debug Connections(PHP调试连接监听器)后,不论是使用PHPStorm的Debug还是Run都会触发断点调试,所以用完后记得停止PHP调试连接监听器。

参考

Yasd调试器官方文档
另一个Swoole调试器 - Yasd
在IDE中使用yasd调试器

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值