• 技术文章 >开发工具 >phpstorm

    详细介绍phpstorm debug工具之yasd(超好用)

    长期闲置长期闲置2022-01-17 15:33:15转载1339
    本篇文章给大家带来了超好用的phpstorm debug工具,平常在开发中,可能会有人选择安装xdebug扩展,在phpstorm中配置xdebug来调试,希望对大家有帮助。

    平常在开发中,总会有一些需要 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 <codinghuang@qq.com>
    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 端口

    10.png

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

    11.png

    3. 测试 debug 调试

    在 Laravel 中随便写一个 test command

    php -e artisan test

    12.png

    到这里就已经成功了

    调试 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教程

    以上就是详细介绍phpstorm debug工具之yasd(超好用)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:learnku,如有侵犯,请联系admin@php.cn删除
    专题推荐:phpstorm
    上一篇:phpstorm怎么修改php.ini 下一篇:Vagrant+PHPStorm实现XDebug断点调试
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 别错过phpstorm中这两个高效的插件!• phpstorm设置内存限制后打不开了怎么办?• 这个phpstorm插件能自动取变量名!(推荐)• Homestead 怎么配置 xdebug 进行调试(PhpStorm)• PhpStorm 2021.3.1发布,新增“受信任项目”!
    1/1

    PHP中文网