一、下载Xdebug扩展
下载xdebug文件:https://xdebug.org/download
使用phpinfo函数查看PHP版本信息需要注意的如下:
需要注意的地方是xdebug官网中没有带(TS)为非线性安全版本(NTS)
在php.ini文件中添加如下信息:
[xdebug]
zend_extension="D:\Server\PHP\ext\xdebug.dll"
xdebug.profiler_enable=1
xdebug.profiler_enable_trigger=0
xdebug.profiler_output_dir="D:\Server\PHP\xdebug"
xdebug.trace_output_dir="D:\Server\PHP\xdebug"
xdebug.profiler_output_name="xdebug.cache.%t-%s"
xdebug.profiler_append=0
xdebug.remote_enable=1
xdebug.remote_host="localhost"
xdebug.remote_port=9001
xdebug.remote_handler="dbgp"
xdebug.idekey=PHPSTORM
重启服务器后,运行http://localhost/phpinfo.php (看扩展是否存在)
二、PhpStorm Xdebug 断点调试工具的安装配置
第一步,设置 PHP CLI
第二步,设置 Xdebug 端口
第三步,设置 PhpStorm Key、主机以及端口
第四步,新建 Xdebug 服务,Name 可以根据自己项目名称来取
第五步,配置 Xdebug 调试接口
谷歌浏览器配置
下面介绍使用google chrome请求,安装 phpstorm helper 插件
安装debug插件
1、下载链接 phpstorm helper 插件 下载地址:https://www.crx4chrome.com/crx/768/
2、下载xdebug(https://www.crx4chrome.com/crx/1716/)
3、安装插件,将插件拖入
4、然后google chrome 会出现这两个图标,右击debug图标,设置ID key
运行测试
如下图所示
三、PhpStorm Xdebug 断点调试工具的使用
图中,所有画红圈的就是常用到的工具。其具体功能介绍如下:
重新请求
此功能键,点击后,当前调试所有变量全部销毁,重新开启一轮请求。即如同刷新页面。
执行到下一个断点,暂停
此功能键点击后,继续 Laravel 生命进程的路程,直到下一个断点,暂停
停止调试
此功能键,停止调试,结束 Laravel 周期。
变量栏
变量栏标签,其下面的内容是当前调试位置,PHP 注册到内存的全局变量和局部变量
定位到当前调试的文件以及行
此功能键的作用是:当调试行文件关闭了,或者代码视图跑到其它位置了,点击它,就能重新定位到调试文件以及调试行
跳过当前调试行代码要执行函数,直接返回结果
此功能键的作用是当调试行代码有调用函数,包含文件,new 新对象时,能够不进入相应函数、文件、类中,直接返回其调用的结果,并在当前行中,执行至下文
进入和强制进入调用的函数内
此功能键作用正好和上面的相反,即进入和强制进入当前调试行将要调用的函数、方法、包含的文件、new 的新对象类文件中,执行相应代码
跳出正在调用的函数
跳出正在执行的函数、方法、包含的文件、new 新对象的类文件,至调用行,并继续执行调用行下面的代码
四、 造成开启XDebug无效原因
1、路径不正确,在php.ini文件中zend_extension路径不正确,例如:正反斜杠、路径不对问题
2、php_debug扩展版本不匹配
例如:你安装的是PHP7.2版本,实际下载的php_debug版本是PHP7.1,就会造成开启debug失败
3、php_debug扩展32位或者64位与安装PHP的不对应
一般的集成环境中,PHP的架构都是32位的(x86),而你的电脑是64位(x64),以PHP的环境架构为准,例如:我的使用的PHP是x32为,电脑是win10 64位,我直接到xdebug官网下载64位扩展,导致开启扩展失败
4、注意下载的php_debug扩展NTS/TS 与安装PHP对应。