前言刚进入后端的phper在开发调试时,习惯性的使用var_dump,echo等在代码中埋下调试信息的做法,这种做法虽然简单除暴,还不错,当时面对更加多的调试信息输出和单步调试时,总显得那么无力,同时还有可能把这些调试信息扔到正式环境中,输出了一些安全信息,安全很难得到保证。难么有没有什么更加方便的调式方式呢,xdebug就是今天我们要讲的了,该教程适用于thinkphp,laraval等php框架。
使用xdebug进行php断点调试Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。
php 环境安装
这里我推荐大家在开发的过程中使用phpstudy,安装过程简单明了
php 环境变量设置
设置php过程中,如果我们使用的是phpstudy,我们要清楚phpstudy中选中的php版本是哪一个,如图我们正在使用的是php7.3.4nts版本
phpstudy界面
接下来我们把php配置到环境变量中,配置过程参考php包管理器composer的安装中的配置方式
下载xdebug
打开xdebug下载地址 选择和php对应的版本,我的php版本是7.3 非线程安全,因此选择如图
xdebug下载
如需查看自己的php版本,可新建phpinfo.php,代码如下
<?phpecho phpinfo();把phpinfo.php放置web根目录,浏览器输入localhost/phpinfo.php查看
php配置xdebug
将下载好的xdebug放置在对应php版本的ext文件夹下php_xdebug-2.8.0beta1-7.3-vc15-nts-x86_64.dll
xdebug放置目录
配置php.ini 打开对应php版本的根目录D:\phpstudy_pro\Extensions\php\php7.3.4nts用编辑器打开目录中的php.ini,文件最后添加如下代码
[xdebug]zend_extension = D:\phpstudy_pro\Extensions\php\php7.3.4nts\ext\php_xdebug-2.8.0beta1-7.3-vc15-nts-x86_64.dllxdebug.auto_trace = On xdebug.show_exception_trace = On xdebug.remote_autostart = On xdebug.remote_enable = On xdebug.remote_host = 127.0.0.1 xdebug.remote_port = 9001 xdebug.remote_handler = dbgp xdebug.profiler_enable = on 切记把remote_port改为非9000,因为php-fpm默认使用9000端口,如果这里我们使用9000,就会出现php无法启动的问题。接下来保存重启nginx。
visual code配置xdebug
下载visual code下载好后默认安装就好了
vscode下载xdebug插件
配置settings.json打开编辑器>文件>首选项>设置>点击右上角{}切换成代码模式,加如如下配置
{ # 其他settings设置 "php.validate.enable": true, "php.validate.executablePath": "D:\\phpstudy_pro\\Extensions\\php\\php7.3.4nts\\php.exe", "php.validate.run": "onType"}验证visual code php xdebug是否安装成功
新建测试文件test.php新建文件夹test,在文件加中新建test.php文件,内容如下
<?php$a = 'xdebug test';var_dump($a);使用visual code打开文件夹,配置debug点击debug区>选择添加配置>选择php
使用vscode打开test文件夹,记得把port改为9001
断点调试设置断点
编辑器打开test.php,在
var_dump($a);前面左键点击,按F5
vscode打开调试
运行php
编辑器ctrl + `,终端输入
php test.php便可查看断电信息,整个debug过程就完成了
调试信息
结语好的开发习惯和技巧能够提高自己的开发能力,巧妙的利用debug能够避免很多想不到的问题哟,觉得不错就分享吧!