【VSCode插件】xdebug开发调试PHP

摘要

Xdebug 在开发过程中可以帮我们查看具体的运行和步骤,以及每行代码执行的结果,在学习和解决代码问题的时候可以提供非常大的便利。PHPStorm 也可以进行 Xdebug 调试,VScode 也可以进行配置调试,且比 PHPStorm 的配置简单很多,不用每次去创建一个 Server,再创建一个 web page 服务。相比之下,VSCode 的界面好看,且简单方便,值得学习一下。

使用了一段时间,但是偶尔还是会出现一些问题,故而进行了整理总结。

一.插件准备

1.查看插件列表

[avatar

2.搜索并安装PHP Debug (安装 VScode 时选择 PHP 开发相关的话会自动安装)

PHP Debug

二.进行配置

1.给 PHP 安装 Xdebug 扩展(此处使用的是 PHPstudy 集成开发环境)

2.在 php.ini 中添加相关配置

[XDebug]
# xdebug扩展的位置,phpstudy已经默认设置好
zend_extension="D:\phpStudy\PHPTutorial\php\php-5.6.27-nts\ext\php_xdebug.dll"
xdebug.auto_trace=1
xdebug.collect_params=1
xdebug.collect_return=1
xdebug.trace_output_dir ="D\phpStudy\tmp\xdebug"
xdebug.profiler_output_dir ="D:\phpStudy\tmp\xdebug"
xdebug.profiler_output_name = "cachegrind.out.%t.%p"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
# 设置端口号,默认是9000,此处因为本地环境端口冲突故设置为9001(在vscode配置中需要用到)
xdebug.remote_port = 9001
# 这是用于phpstorm中xdebug调试的配置,在vscode中没有用到
xdebug.idekey = phpstorm

3.在 phpinfo 中查看 xdebug 扩展的信息,验证是否开启成功

4.查看 vscode 中 debug 页面

5.新建 debug 配置,并选择调试语言

6.进行配置

相关配置信息参考:(注意 port 端口号的值,需要与 php.ini 中设置的一样)

{
  // 使用 IntelliSense 了解相关属性。
  // 悬停以查看现有属性的描述。
  // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Listen for XDebug",
      "type": "php",
      "request": "launch",
      "port": 9001
    },
    {
      "name": "Launch currently open script",
      "type": "php",
      "request": "launch",
      "program": "${file}",
      "cwd": "${fileDirname}",
      "port": 9001
    }
  ]
}

三.开启调试

1.启动 debug(点击绿色小箭头启动)

显示出调试小窗口

2.开启自动附加(单击即可切换开关)

3.设置断点(行号前点击即可出现红色小断点)

4.在浏览器中访问设置断点的程序

5.访问后会自动跳转到 VSCode,并显示出断点标记,并显示相关执行结果

6.在调试小窗口中进行单步调试或单步跳过等操作

注意

1.注意自动附加是否是开启状态

2.注意端口号是否冲突(点击下部玫红色状态栏的Listen for XDebug后,会弹出选择 debug 设置如果端口设置有问题的话,会在选择后弹出错误提示)

(设置小图标后打开调试控制台也可以显示相关错误提示,注意查看即可) 将launch.json的端口号修改未被占用的号,并且修改php.ini中 xdebug 的配置

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏happyJared

Python + Selenium 自动发布文章(三):CSDN

  这是本系列的第三篇文章,主要介绍如何用Python+Selenium 自动发布CSDN博客,一些必要的条件在之前的文章里面已经提到过,这里也不再重复。

1172
来自专栏守望轩

Visual Studio 2008 每日提示(十二)

#111、定义最近使用的列表中显示项的数目 原文链接:How to customize the number of items shown in the re...

3704
来自专栏about云

zookeeper思考与总结1:在其它组件的作用及hdfs对比

一、zookeeper在其它组件的作用 1.为什么会产生zookeeper zookeeper是模仿的谷歌的Chubby来解决分布式一致性的问题。2006年的时...

4035
来自专栏GIS讲堂

Openlayers4中地图的导出

本文讲述Openlayers4中地图的导出,包括调用天地图切片跨域、Geoserver11 WMS跨域等。

3642
来自专栏Flutter入门到实战

Flutter从配置安装到填坑指南详解

在 Google I/O ’17 上,Google 向我们介绍了 Flutter —— 一款新的用于创建移动应用的开源库。

2.6K5
来自专栏小程序之家

如何在小程序中实现文件上传下载

在如何实现小程序登录鉴权这篇文章中,我们实现了小程序的wx.request请求操作,除了request之外,小程序还有文件下载wx.downloadFile和文...

13.4K7
来自专栏一“技”之长

iOS 封装静态库(.a文件) 原

iOS中导入外部文件,一种是将源码导入,一种是导入静态库,有很多第三方库都是以静态库的形式提供给我们使用的,如何制作一个静态库呢?

953
来自专栏北京马哥教育

Linux 下使用 Sar 简介

介绍 Sar 最早是实现在 Salaris Unix 系统里,后来移植到了大部分其他的 Unix 系统(如AIX,HP-UX等)。Linux 下也有法国人写的 ...

4017
来自专栏木子昭的博客

img标签随机获取高质量图片

2071
来自专栏Android干货

安卓开发--android library projects cannot be launched错误

3415

扫码关注云+社区

领取腾讯云代金券