VScode+phpStudy搭建php代码调试环境
一、安装Visual Studio Code
官网:https://code.visualstudio.com/
下载安装包后,按照默认安装即可
安装中文语言环境
点击左侧工具栏的 extensions 或者使用快捷键 Ctrl+Shift+X ,输入chinese,点击 Install 安装中文简体,之后重起 vscode 即可
二、安装phpstudy
我比较喜欢老版本的,安装包如下:
链接:https://pan.baidu.com/s/1JJ8wkMqvXz0SGES2wU2Wng
提取码:vup6
新版本可以去官网下载
配置Xdebug
1、打开phpstudy,其他选项菜单->php扩展及设置->php扩展->勾选xdebug
2、修改php.ini,找到你使用的php版本目录下的php.ini,修改 [XDebug] 的内容
将 zend_extension 目录修改为你的 xdebug.dll (phpstudy自带) 的路径
然后在最后添加
xdebug.remote_enable = on
xdebug.remote_autostart = on

修改好后重启apache, 可以访问http://127.0.0.1/phpinfo.php来查看xdebug有没有配置成功

如果 phpinfo 信息里有 xdebug 就说明 php 的 xdebug 配置成功了。
三、配置VScode
指定使用的 php.exe 的路径
点击 文件->首选项->设置->扩展->搜索 php

然后打开 setting.json,添加并保存(下面是你自己的php路径)
"php.validate.executablePath": "D:/PHPTutorial/php/php-5.5.38/php.exe"

安装 php debug 插件
打开扩展 Extension 界面,搜索PHP Debug,点击install安装,在重启VScode 即可

四、配置 PHP Debug 并测试
这里我们新建一个php文件,并放到网站的根目录下
<?php
echo "hello";
$a=$_POST['a'];
?>
然后用vscode打开他所在的文件夹
注意:PHP Debug 必须通过打开文件夹中的文件才能调试,而且需要是可以访问的文件夹,直接在VScode中新建的文件是调试不了的。

然后切换到调试 Debug 界面,按 F5 选择PHP语言环境

然后点击创建 launch.json(这里它会通过默认配置生成,通常不需要需改)

注意:里面的远程端口要和php.ini中的设置一致
默认使用的是9000端口,如果端口冲突可以在 php.ini 的 xdebug 下添加如下代码:
xdebug.remote_port = 9001
然后选择Listen for XDebug,并点击绿色小箭头或按 F5 启动调试工具
接者在代码中下一个断点(点击行号前面的点即可)
最后在浏览器中访问我们下断点的页面,VScode就能够监听代码接收的内容并显示相关运行结果
这里可以看到代码运行停在了第3行,$a还没有被赋值,以及接收到的参数
关于vim插件,导致不能使用ctrl+c的问题
VScode 中默认加载了 VIM 插件
可以在文件->首选项->设置中->搜索 vim.us 将 vim.useCtrlKeys 选项前的勾去掉

配置以新窗口打开文件夹
文件>>首选项>>设置>>窗口>>新建窗口>>Open Folders In New Window>>on 这里设置为on即可


其他的插件
Code Runner
功能:直接在编辑器中运行代码,查看结果,非常方便,一键运行。
只需右键运行 run 即可
详细使用参考:
https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner
自定义执行程序的 PATH
{
"code-runner.executorMap": {
"javascript": "node",
"php": "C:\\php\\php.exe",
"python": "python",
"perl": "perl",
"ruby": "C:\\Ruby23-x64\\bin\\ruby.exe",
"go": "go run",
"html": "\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\"",
"java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
}
}
在setting.json里加入上面的常用配置
最好将"code-runner.runInTerminal"设置为true,这样就可以让程序在终端中执行,就不会出现无法在只读编辑器输入的情况了。
也就是将 "code-runner.runInTerminal": true, 添加到setting里

避免每次重复输出结果。可以在 vscode --文件–设置–首选项,找到 code run,勾上每次 清除上一次结果。

PHP IntelliSense
功能:
智能完善代码
标签关键字提示
工作区符号搜索
选中参数高亮
转到定义,函数跳转即查看
徘徊
找到所有符号
列精确的错误报告
安装和使用都需要php7.1以上环境,在setting里设置即可

使用的时候首先选定类或函数,然后右键转到定义,实现跳转
(或者ctrl + 左键 跳转到定义 ctrl + 右键 查看引用)

PHP Intelephense
与PHP IntelliSense的功能类似,但是不需要php7环境
Theme
用来设置 VScode 的主题,可以直接去插件商店选择一款好看的(PS:毕竟是常用软件嘛)
VScode+phpStudy搭建php代码调试环境的更多相关文章
- vscode加MinGw三步搭建c/c++调试环境
vscode加MinGw三步搭建c/c++调试环境 step1:安装vscode.MinGw 1.1 vscod常规安装:https://code.visualstudio.com/ 1.2 MinG ...
- Xcode搭建真机调试环境 图文实例
本文介绍的Xcode搭建真机调试环境 图文实例,图文并茂,使我们学习起来更方便些,我们先来看内容. AD: 2013云计算架构师峰会超低价抢票中 Xcode搭建真机调试环境 是本文要介绍的内容,不多说 ...
- 通过模拟器和ida搭建Android动态调试环境的问题
这几天在学Android的native层逆向.在按照教程用ida搭建动态调试环境时,第一步是把android_server 放到手机里执行,但是在手机里可以,在genymotion模拟器上就提示 no ...
- Go 开发环境搭建和代码调试
写这篇笔记的目的,主要是分享我在Go学习中遇到的坑.让后面的学习者能否参考有用的经验. 其中有一些小技巧,对初学者来说,可能会大大节约填坑的时间. 比如如何设置vscode的Go调试器,Go的语法高亮 ...
- 基于Visual Studio Code搭建Golang开发调试环境【非转载】
由于对Docker+kubernetes的使用及持续关注,要理解这个平台的原理,势必需要对golang有一定的理解,基于此开始利用业余时间学习go,基础语法看完之后,搭建开发环境肯定是第一步,虽然能g ...
- Windows下搭建FFmpeg开发调试环境
背景 如果你是一个FFmpeg的使用者,那么绝大部分情况下只需要在你的程序中引用FFmpeg的libav*相关的头文件,然后在编译阶段链接相关的库即可. 但是如果你想调试FFmpeg内部相关的逻辑,或 ...
- 用Qemu模拟vexpress-a9 (一) --- 搭建Linux kernel调试环境【转】
转自:http://www.cnblogs.com/pengdonglin137/p/5023342.html#_label2 阅读目录(Content) 环境介绍: 下载Linux内核 安装arm的 ...
- 用Qemu模拟vexpress-a9 (一) --- 搭建Linux kernel调试环境
参考: http://blog.csdn.net/linyt/article/details/42504975 环境介绍: Win7 64 + Vmware 11 + ubuntu14.04 32 u ...
- 基于Groovy搭建Ngrinder脚本调试环境
介绍 最近公司搭建了一套压力测试平台,引用的是开源的项目 Ngrinder,做了二次开发,在脚本管理方面,去掉官方的SVN,引用的是Git,其他就是做了熔断处理等. 对技术一向充满热情的我,必须先来拥 ...
随机推荐
- HF Java Chap 1
介绍了java的工作方式以及几个有趣的小程序 Java的工作模式 大体来说有四个步骤: 源代码 编译器 编译器的输出 Java虚拟机 源代码 这是我们程序员接触到的部分.根据我们面临的问题,编写一个符 ...
- Sed 实记 · laoless's Blog
sed编辑命令 p 打印匹配行 = 打印文件行号 a 在定位行之后追加文本 i 在定位行之前插入文本 d 删除定位行 c 用新文本替换定位文本 s 使用替换模式替换相应模式 r 从另一个文件读取文本 ...
- CSS——NO.3(CSS选择器)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- C++ 走向远洋——44(项目一、点—圆—圆柱类族的设计、派生类)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- PHP网络爬虫实践:抓取百度搜索结果,并分析数据结构
百度的搜索引擎有反爬虫机制,我先直接用guzzle试试水.代码如下: <?php /** * Created by Benjiemin * Date: 2020/3/5 * Time: 14:5 ...
- js中如何判断属性是对象实例中的属性还是原型中的属性
ECMAScript5中的hasOwnProperty()方法,用于判断只在属性存在与对象实例中的时候,返回true,in操作符只要通过对象能访问到属性就返回true. 因此只要in操作符返回true ...
- 纯JS实现KeyboardNav(学习笔记)一
纯JS实现KeyboardNav(学习笔记)一 这篇博客只是自己的学习笔记,供日后复习所用,没有经过精心排版,也没有按逻辑编写 GitHub项目源码 预览地址 最终效果 KeyboardNav使用指南 ...
- 关于java性能优化细节方面的建议
在Javva程序中,性能问题的大部分原因并不在于Java语言,而是程序本身,养成一个良好的编码习惯非常重要,能够显著地提升程序性能.下面来聊聊该方面的建议: 1.尽量在合适的场合使用单例: 所谓单例, ...
- javascript的constructor属性介绍
之前闲来了解了__proto__和prototype的区别,每个对象都有隐私属性__proto__,而prototype是javascript函数特有的属性.那么constructor属性呢?最近是遇 ...
- 【01】openLayers 第一个地图
效果: 代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...