第一步,配置php.ini
我用的是phpstudy,可以直接在如下目录找到php.ini:
在php.ini加入以下配置:
[xdebug]
zend_extension = "D:/phpstudy_pro/Extensions/php/php7.3.4nts/ext/php_xdebug.dll"
xdebug.remote_enable=1
xdebug.remote_mode=req
xdebug.remote_port=9002
xdebug.remote_host=127.0.0.1
xdebug.var_display_max_depth=100
;xdebug.remote_autostart=1
其中php_xdebug.dll是phpstudy安装php时自带的,如果没有请到xdebug官网自行下载相应php版本的xdebug.dll:https://xdebug.org/download.php
第二步,设置phpstorm
在phpstorm左上角File>>Settings…打开设置:
将PHP的CLI版本设置成配置了xdebug的php版本
将如图中红圈标记的Debug port设置成和php.ini的xdebug.remote_port一样。
(注意:每个新打开的项目都要设置一遍phpstorm)
至此设置完成。
第三步,调试测试
CLI调试,准备任意测试代码,标记好断点,然后在编辑器中右键>>Debug>>…(PHP script)
然后会打开如下的调试界面:
图中标记的按钮作用:
1.返回第一个断点标记处,API调试时没有此项目
2.执行到下一个断点标记处
3.停止调试
4.下一步
5.进入函数方法等
6.变量赋值,可用来改变变量的值,以此改变代码进入的逻辑分支
API调试,以thinkphp6为例(先设置好第二步):
打开右上角圈中的监听按钮。
在要调试的api中标记断点,并在api的url增加参数XDEBUG_SESSION_START=1
例 :http://tp6.test/?XDEBUG_SESSION_START=1
http://tp6.test/?s=index/test&XDEBUG_SESSION_START=1
url可以直接在浏览器或者postman等请求。