推荐一款phpstorm上的debug工具:yasd插件
技术  /  管理员 发布于 3年前   1463
在开发中,总会有一些需要 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 框架中如何调试
需要注意的几点
在 Hyperf 中使用需要将 config.php 中的 scan_cacheable 参数设置为 true,该参数为是否扫描代理类,若设置为 true,则每次启动都会直接扫描缓存代理类,而不是重新扫描在生成代理类。
设置为 true 后需要注意,每次修改代码需要手动生成代理类,
composer dump-autoload -o
然后在启动。
或者直接在代理类中修改代码,当 debug 结束后,再将代理类中的代码复制到真实类中。
代理类生成路径在
runtime/container/proxy
在 Hyperf 框架中如果使用到了 Swoole Server,需要将 worker_num 设置为 1 否则断点可能不会生效。该参数在 server.php 中。
最后
目前还不支持最新的php8版本,看情况选择使用
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号