阅读tp框架源码过程中,经常被代码绕来绕去,头晕的很(tp框架源码已很久没有更新);
于是想到了phpstorm+xdebug 断点调试,各种配置不成功后,开始记录自己踩坑记录(在老早以前配置过);
xdebug断点调试最大的有点就是能像浏览器断点j调试s一样调试php; 上周一个composer的extra参数搞了一两天,实在太忙,一直强调自己一周至少写一篇文章(好像有两周没有更新文章了);
安装xdebug
查看 phpinfo() 输出页面的网页源码,全选复制;
再去官网粘贴下载对应版本的xdebug扩展 Xdebug: Support — Tailored Installation Instructions ;
xdebug 配置
debug 的简单配置,打开PHP配置文件php.ini(配置完成记得重启php)
# 必填项 zend_extension = "D:/wamp64/bin/php/php5.6.40/zend_ext/php_xdebug-2.5.5-5.6-vc11-x86_64.dll" (刚刚下载的拓展) xdebug.remote_enable = 1 xdebug.idekey = PHPSTORM (这个值是作为 XDEBUG_SESSION_START 的值,是通知 PHP 开启调试的标识) # 可选项 xdebug.remote_port = 9005 (监听的端口) xdebug.remote_log="D:/wamp64/tmp/xdebug.log" (记录日志) #xdebug.remote_autostart = 1 (如果开启,则无论什么请求都会进行调试响应)
phpstorm 配置
Language & Frameworks > PHP > Debug , 设置 Xdebug 的 Debug Port 为 上面设置的 9005 端口,端口号一定要一致 (我的是中文版)
配置服务器端
Host指的是服务器对应的项目的访问域名,我的是虚拟域名;
本地nginx默认(127.0.0.1),端口是80;
配置xdebug选项
配置DBGp Proxy
IDE key 是第一步配置的;
调试配置
配置chrome
安装浏览器插件(当然你也可以不安装还有另一种方法)
我这里使用的是chrome浏览器,安装的是xdebug helper插件;
无法使用应用商店的可以到国内镜像网站去下载;
下载可通过加载已解压的扩展程序加入谷歌拓展中;
开始调试
打开debug
如果选择不安装chrome拓展,可点击编辑器右上角电话旁边的小虫子按钮进行调试。调试完记得浏览器清楚cookie;
点击监听,打上断点
phpstorm弹出调试信息
从你断点开始的地方,你可以按F7,程序会一步一步往下走,碰到函数的话,会跳转到该函数;按F8则是在当前代码页一行一行的往下走,碰到函数不会跳转。这两个功能是断点调试的最为实用和关键功能。
注意事项
低版本的phpstorm 无法调试高版本的php,据我所知phpstorm2019的版本无法调试php7.2版本
如果配置不成功可能是版本问题,建议升级成phpstorm 2020的版本(我踩过坑,目前在用2020.2版本的编辑器)