要说php的调试功能对效率有多大提升,这个问题我只想说:反正我用过之后再也不var_dump了,而且代码review神速。别说有什么好处了,试试就知道了。
再说说VSCode
,是真的不卡,电脑一个月不关机,VSCode一个月不用重启。
我是从phpstorm
转过来的,不得不说phpstorm
不论怎么卸掉插件,怎么关闭无用功能,依然各种卡,开始我是两个ide并行的,使用一段VSCode
后,果断卸掉了phpstorm
。
开始步入正题,安装调试功能,原理很简单,如下:
- XDebug带有远程调试功能(remote)
- 在php.ini配置监听地址和端口
- 在VSCode中配置监听端口后即可调试
给PHP安装Xdebug
下载
php_xdebug.dll
有的集成环境的php/ext目录下是有这个文件的,这时直接在php.ini中引入即可
zend_extension="E:\phpStudy2018\PHPTutorial\php\php-5.5.38\ext\php_xdebug.dll"
如果没有这个文件,可以去这里下载:XDebug,然后放到php/ext目录
注意需要匹配自己的PHP版本,还有
ts
或nts
(是否线程安全),怎么判断自己的是ts还是nts,去php_info()中找Thread Safety
,如果是enabled
则为ts
版本。注意在php.ini中配置时必须是使用
zend_extension
,使用extension
会报错。配置XDebug
方案一
;引入php_xdebug.dll
zend_extension="E:\phpStudy2018\PHPTutorial\php\php-5.5.38\ext\php_xdebug.dll"
;设置是否开启
xdebug.remote_enable=1
;是否使用默认配置,并自动开启调试
xdebug.remote_autostart=1
;展示全部输出内容
xdebug.var_display_max_data=-1方案二(推荐)
;引入php_xdebug.dll
zend_extension="E:\phpStudy2018\PHPTutorial\php\php-5.5.38\ext\php_xdebug.dll"
;设置是否开启
xdebug.remote_enable=1
;远程调试的地址
xdebug.remote_host=localhost
;端口
xdebug.remote_port=9000
;用于ide识别调试请求的key,为空也可以,可以不配置
;xdebug.idekey="PHPSTORM"
;展示全部输出内容
xdebug.var_display_max_data=-1方案二需要配合浏览器插件,方案一不需要要
方案一有一个特别大的问题,如果你的代码中有curl请求本地代码(比如view调用api层)时,会直接卡死,不知道后期XDebug会不会修复,目前2.6版本尚有这样的问题。
查看是否安装成功
cmd中,到PHP目录下执行
php -m
,查看是否显示XDebug
安装浏览器插件
此插件可以自动为请求增加XDEBUG_SESSION=PHPSTORM
的Cookie,默认值为PHPSTORM
,插件也可以自定义设置Cookie的值。
VSCode只会判断是否存在XDEBUG_SESSION
即可调试,并不会判断XDEBUG_SESSION
的值
插件下载地址:https://chrome-extension-downloader.com/
输入:eadndfjplgieldjbigjakmdgkmoaaaoc
设置VSCode
切换到调试标签,添加项目调试配置
{ |
点击绿色运行小箭头或按F5
即可开始调试。
到这里就已经结束了,快去打个断点,去浏览器请求下试试吧。