vscode开发PHP攻略
前言
此文主要介绍如何使用vscode开发PHP,开发体验可以说和php死桃木不相上下(虽然我没用过php死桃木)
PHP扩展组合
一、卡巴斯基组合
注:php debug这个扩展没什么好说的,主要介绍下PHP IntelliSense这个扩展,可能被吐糟的太多了原作者已经将扩展从市场移除了,目前市场上能搜到的这个是其他人单独发布的。
而且这个扩展由于发布的早,也是最先支持php的,导致新手很容易去安装这个,但由于体验不好可能就抛弃vscode来开发php了
优点:免费,适合小型项目
缺点:小项目使用可能会有一点卡,大项目可以卡到怀疑人生。
二、美中不足组合
注:PHP Intelephense 刚发布时是不收费的,也用了一段时间响应都很快,就是不够智能没法和专业ide媲美。后期作者重新维护开始部分功能收费,自己也付费体验了下功能上还是有很大的提升空间
优点:部分功能免费,性能好,满足基本开发
缺点:部分实用的功能收费,系统函数智能提示不支持中文,功能不够完善。
三、专业扩展不用组合
PHPDocument (可选扩展,作者自己开发的,可以在vscode中在线查看php官方文档)
注:此扩展已经集成了xdebug调试功能,所以不用单独安装php-debug扩展。
优点:功能完善,代码跳转、中文智能提示,可以媲美专业IDE
缺点:免费试用15天,按年付费订阅。依赖.net环境
总结一下: 新手或者业余开发人员在针对较小的项目时,前两种可以体验试下能否满足使用。如果不想花钱又要开发大一点的项目用第二种组合也可以凑合使用。
还有就是下面重点要说的利用修改源代码方式免费使用第三种组合。
破解步骤
start
安装完成后,根据扩展提示申请一个免费15天的秘钥(不知道现在还有没有),
申请不到可以使用这个已经过期的秘钥:9A67311816caZfsGXE6TxeS4NyN2UkaQC (网上找的)执行命令:ctrl+shift+p -> 输入 : php -> 选择下面出现的PHP Tools: Activate extension
将秘钥输入进去,如果提示过期不用管
修改扩展源代码:找到扩展安装目录,一般是在系统用户目录下:
C:\Users\admin\.vscode\extensions\devsense.phptools-vscode-1.5.8280\out\src\extension.js
版本不同这个文件夹也会有所不同:devsense.phptools-vscode 根据这个自己匹配就行了打开文件后搜索
Date>new关键词,将时间判断改为return false;修改前:

修改后:

由于扩展更新都会重新覆盖此文件,所以每次更新后要重复此步骤,然后重启vscode
输入快捷键:ctrl+shift+u 打开输入面板,选择:PHP
正常情况应该可以看到下图,正在下载扩展所依赖的.net运行时,如果你没有FQ的情况下,可能半天也下载不好。就算FQ能下载成功,后期每次扩展更新都要重新下载一次。

解决下载运行时的方法是:自己安装.net5.0 sdk到系统上,就不用单独下载了。
下载地址:.NET 5.0
选择对应的版本安装:

安装完成之后重启下vscode,正常情况下输出面板应该是这样的:

然后就能正常使用该扩展了。体验一下然后卸载PHP死桃木

当前这种方法不太推荐,有条件的朋友还是付费使用,毕竟人家也需要维护,可能后期这种问题被修复后就彻底不能使用了。
end
开发进阶(win10及以上系统适用)
通过上面的方式使用vscode开发PHP已经大大提升了开发效率,不过还有。。。
VScode + WSL2 + Ubuntu 20.04 LTS 加上这套组合就可以在windows环境下以最佳的方式开发swoole项目了。。
注意:是wsl2,wsl1体验太差。。,具体安装方式就不在这里介绍了。
最后
如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。
好了,本文到此结束,希望本文对你有所帮助
vscode开发PHP攻略的更多相关文章
- VSCode插件开发全攻略(六)开发调试技巧
更多文章请戳VSCode插件开发全攻略系列目录导航. 前言 在介绍完一些比较简单的内容点之后,我觉得有必要先和大家介绍一些开发中遇到的一些细节问题以及技巧,特别是后面一章节将要介绍WebView的知识 ...
- VSCode插件开发全攻略(七)WebView
更多文章请戳VSCode插件开发全攻略系列目录导航. 什么是Webview 大家都知道,整个VSCode编辑器就是一张大的网页,其实,我们还可以在Visual Studio Code中创建完全自定义的 ...
- VSCode插件开发全攻略(三)package.json详解
更多文章请戳VSCode插件开发全攻略系列目录导航. package.json 在详细介绍vscode插件开发细节之前,这里我们先详细介绍一下vscode插件的package.json写法,但是建议先 ...
- VSCode插件开发全攻略(二)HelloWord
更多文章请戳VSCode插件开发全攻略系列目录导航. 写着前面 学习一门新的语言或者生态首先肯定是从HelloWord开始. 您可以直接克隆我放在GitHub上vscode-plugin-demo 的 ...
- VSCode插件开发全攻略(一)概览
文章索引 VSCode插件开发全攻略(一)概览 VSCode插件开发全攻略(二)HelloWord VSCode插件开发全攻略(三)package.json详解 VSCode插件开发全攻略(四)命令. ...
- VSCode插件开发全攻略(九)常用API总结
更多文章请戳VSCode插件开发全攻略系列目录导航. 本文提炼一些常见的API使用场景供参考,本文内容有待完善. 编辑器相关 修改当前激活编辑器内容 替换当前编辑器全部内容: vscode.windo ...
- VSCode插件开发全攻略(十)打包、发布、升级
更多文章请戳VSCode插件开发全攻略系列目录导航. 发布方式 插件开发完了,如何发布出去分享给他人呢?主要有3种方法: 方法一:直接把文件夹发给别人,让别人找到vscode的插件存放目录并放进去,然 ...
- VSCode插件开发全攻略(八)代码片段、设置、自定义欢迎页
更多文章请戳VSCode插件开发全攻略系列目录导航. 代码片段 代码片段,也叫snippets,相信大家都不陌生,就是输入一个很简单的单词然后一回车带出来很多代码.平时大家也可以直接在vscode中创 ...
- VSCode插件开发全攻略(五)跳转到定义、自动补全、悬停提示
更多文章请戳VSCode插件开发全攻略系列目录导航. 跳转到定义 跳转到定义其实很简单,通过vscode.languages.registerDefinitionProvider注册一个provide ...
随机推荐
- 【剑指Offer】和为S的连续正数序列 解题报告(Python)
[剑指Offer]和为S的连续正数序列 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interview ...
- misc之压缩文件处理
misc之压缩文件处理 一.预备知识 1.头文件名代码 二.实验环境 1.winhex 三.题目来源 攻防世界杂项:János-the-Ripper.再见李华 实验一 打开题目文件是一个压 ...
- CS5213设计说明书|Capstone CS5213|CS5213设计参考电路
Capstone CS5213是一款HDMI到VGA转换器结合了HDMI输入接口和模拟RGB DAC输出且带支持片上音频数模转换器.CS5213芯片设计简单,整体芯片尺寸精悍,外围电路集成优化度较高, ...
- C#WPF数据绑定模板化操作四步走
前言:WPF数据绑定对于WPF应用程序来说尤为重要,本文将讲述使用MVVM模式进行数据绑定的四步走用法: 具体实例代码如下: 以下代码仅供参考,如有问题请在评论区留言,谢谢 1 第一步:声明一个类用来 ...
- Swoole 协程使用示例及协程优先级
示例一: Co::set(['hook_flags'=> SWOOLE_HOOK_ALL]); Co\run(function () { go(function() { var_dump(fil ...
- 深入 Laravel 内核之观察者模式
装饰模式核心内容: 观察者模式又称为发布订阅模式,定义了对象间的一对多依赖关系,当一个对象状态发生改变时,其相关依赖的其他对象都能接收到通知: 观察者模式的核心在于目标(Subject)和观察者(Ob ...
- 乌龟NOI
题目描述 一只乌龟由于智商低下,它只会向左或向右走,不过它会遵循主人小h的指令:F(向前走一步),T(掉头). 现在小h给出一串指令,由于小h有高超的计算能力,他可以马上知道乌龟最后走到哪里.为了难倒 ...
- Fuchsia OS入门官方文档
Fuchsia Pink + Purple == Fuchsia (a new Operating System) Welcome to Fuchsia! This document has ever ...
- unittest_assert断言(4)
测试用例是否测试通过是通过将预期结果与实际结果做比较来判定的,那代码中怎么来判定用例是否通过呢?在python中这种判定的方法就叫做断言,断言可以使用python的assert方法,也可以使用unit ...
- Selenium_获取浏览器名称和版本(5)
from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get(" ...