微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

phpstorm debug工具yasd怎么用

PHPstorm debug工具yasd怎么用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法

平常在开发中,总会有一些需要 debug 的时候,手动打断点 var_dump、die 等方式总是耗时耗力还不优雅,这时候可能会有人选择安装 xdebug 扩展,在 PHPstorm 中配置 xdebug 来调试。

但当你需要用到 swoole 框架时,并需要调试 swoole 框架中代码时,xdebug 是不能用在 swoole 上的,是和 swoole 有冲突的。

然后我发现了一款比较好用的,可以兼容 fpm 框架,和 swoole 框架的 debug 调试工具,yasd.

安装

1. Mac 上安装 boots 库

brew install boost

2. 从 Github 上下载 yasd 源码

git clone https://github.com/swoole/yasd.git

3. 编译安装 yasd

cd yasd
PHPize --clean && \
PHPize && \
./configure && \
make clean && \
make && \
make install

4. 修改 PHP.ini

zend_extension="yasd.so"
;命令行调试
;yasd.debug_mode=cmd
;远程调试
yasd.debug_mode=remote
;本地开发地址
yasd.remote_host=127.0.0.1
;本地开发监听端口
yasd.remote_port=9000

查看扩展信息

➜  yasd PHP --ri yasd
yasd
Yasd => enabled
Author => codinghuang <[email protected]>
Version => 0.3.9-alpha
Built => Jan 15 2022 14:09:47
Directive => Local Value => Master Value
yasd.breakpoints_file => no value => no value
yasd.debug_mode => remote => remote
yasd.remote_host => 127.0.0.1 => 127.0.0.1
yasd.remote_port => 9000 => 9000
yasd.depth => 1 => 1
yasd.log_level => -1 => -1
yasd.max_executed_opline_num => 0 => 0
yasd.init_file => no value => no value
yasd.open_extended_info => 0 => 0
xdebug.coverage_enable => 1 => 1
xdebug.profiler_enable => 1 => 1
xdebug.remote_autostart => 1 => 1
xdebug.remote_connect_back => 0 => 0
xdebug.remote_mode => req => req
xdebug.idekey => hantaohuang => hantaohuang

5. 调试脚本

使用 yasd 调试脚本,必须要添加 -e 的 PHP 参数,例如这样

# 调试普通PHP脚本
PHP -e test.PHP
# 调试 laravel 的 command
PHP -e artisan test
# 调试 hyperf 框架
PHP -e bin/hyperf start

配置 PHPstorm

1. 配置 PHPstorm 监听 9000 端口

2. 点击 PHPstorm 右上角的电话图标启动监听

3. 测试 debug 调试

在 Laravel 中随便写一个 test command

PHP -e artisan test

到这里就已经成功了

调试 Hyperf 框架

上面说了在 fpm 中调试,接下来说一下在 Hyperf 框架中如何调试

需要注意的几点

1、在 Hyperf 中使用需要将 config.PHP 中的 scan_cacheable 参数设置为 true,该参数为是否扫描代理类,若设置为 true,则每次启动都会直接扫描缓存代理类,而不是重新扫描在生成代理类。

设置为 true 后需要注意,每次修改代码需要手动生成代理类,composer dump-autoload -o,然后在启动。

或者直接在代理类中修改代码,当 debug 结束后,再将代理类中的代码复制到真实类中。

代理类生成路径在 runtime/container/proxy

2、在 Hyperf 框架中如果使用到了 Swoole Server,需要将 worker_num 设置为 1 否则断点可能不会生效。该参数在 server.PHP 中。

剩下的调试就和上面讲的没什么区别了。

关于PHPstorm debug工具yasd怎么用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程之家行业资讯频道了解更多相关知识。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐