phpstorm 中xdebug调试(最新完整)

刚出来实习就接触到了xdebug这种调试模式,但是因为工作需要,很久没用了,现在写篇博客记录一下。

建议使用php版本7.1以上,常量修饰符的支持需要这个版本以上,否则报错

1.安装phpstudy+phpstorm+谷歌xdebug插件

2.phpstudy中选择PHP版本和安装xdebug拓展;点击php拓展之后会自动生成。

3.配置phpstorm;端口9100得对应上php.ini的端口。

4.使用phpstorm软件调试,配置新增。

 

 

 有个问题是,当你想调试一个源码时,这个时候,nginx默认接收php-fpm的时间默认60秒,这时就很容易404超时了,为了方便调试可以在开发的时候设置nginx的接收时间为更长时间如:

 说明:

php.ini 中缺省的最长执行时间是 30 秒,这是由 php.ini 中的 max_execution_time 变量指定.

PHP 程序中加入 ini_set('max_execution_time', '0'),数值 0 表示没有执行时间的限制,你的程序需要跑多久便跑多久。

5.常用快捷键总结。

ctr+shift+F8 查看断点

ctr+F8 增加断点

F7 一步一步进去底层方法,看源码

alt+F9 进入当前断点

F8一步一步执行

shift+F8 退出函数,返回上次执行的下一行

上次留了疑问?怎么调试命令行中的脚本呢?之前我们的调试都是基于浏览器去请求的,现在使用命令行去debug一下?

根据自己phpstorm版本选择官方文档:Debugging a PHP CLI script - Help | PhpStorm

采坑之路:

  1. phpstorm中命令行php版本和项目使用的版本不一致!需要修改系统环境变量。

本人本地测试了一下php7.0.9版本,是为了测试一个该版本的不支持:常量前加public的调试过程

  public const SDK_VERSION = 'alipay-sdk-PHP-4.11.14.ALL';

起初在cmd中打印php版本,发现和项目使用的php版本不一致。phpstudy中可以设置对应项目的php版本的,在此故意设置为php7.0.9版本。

 上面那个原因是系统环境变量导致的:选择对应的php7.0.9nts版本就可以命令行输出php -v

 

在phpstorm中terminal终端输入以下命令既可调试啦:

//命令行前置条件;端口根据自己的来,比如我的是9100
set XDEBUG_CONFIG="remote_enable=1 remote_mode=req remote_port=9100 remote_host=127.0.0.1 remote_connect_back=0"

//命令行执行条件
php yii queue/query-promotion-relation

 

debug成功 php版本不支持 常量前public

调试过程:

  • step over 步过:一行一行的往下走,不会进入到其他方法的内部

  •  step into:步入:如果兰前行有方法执行,可以进入方法的内部(不会进入官方定义的方法,仅能进入自定义的方法),比如我想进入get方法,可以在get方法加个断点。

  • run to Cursor:运行到箭头处,也就是鼠标箭头处调试;可以结合step over一步一步调试

  •  force step into:强制步入:如果当前行有方法执行,可以进入方法的内部何以进入官方定义的方法,这在查考底层源码时非常有用)。
  •  step out 一步一步往回走。

 调试过程中 修改变量值,监听变量等,随便你玩

debug也可以远程debug服务器的,只不过得服务器配置:phpstorm+xdebug3本地或远程调试 - 编程混子 - 博客园

拓展:结合postman等接口工具进行调试,很多时候为了接口可以线上同步,公司共享使用postman,apipost等,调试POST请求等,参考:Docker-compose + postman + phpstorm + xdebug 调试接口_胖子会上树的博客-CSDN博客

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值