visual studio code怎么创建php(用Visual Studio)

2024-01-20 06:15:00 来源 : haohaofanwen.com 投稿人 : admin

下面是好好范文网小编收集整理的visual studio code怎么创建php(用Visual Studio),仅供参考,欢迎大家阅读!

visual studio code怎么创建php

前言

作为一名PHP开发者,不得不说PhpStorm是非常好用的IDE,也不得不说,官方的定价对于我来说,实在太高昂了。用了一段时间的网络注册,越来越觉得使用盗版软件实在是非常不应该,用盗版软件,就是在盗取他人的智慧成果,换位思考一下,作为开发者,我们自己开发的软件被他人破解使用,付出的时间、精力、智慧得不到相应回报,自己是什么感受呢?

国内版权意识现在也越来越注重了,这是好事。本人手头上的PhpStorm和Navicat两大利器都是非正规使用,在这里向作者忏悔!

言归正传,现在开始安装各种扩展插件,来解决我从PhpStorm开发时的常用功能和操作习惯。

推荐的插件

1.PHP Extension Pack

PHP开发的最重要的扩展。

2.PHP Intelephense

PHP自动补全工具。

3.PHP IntelliSense

也是PHP自动补全工具,我两个都装了,暂时没啥毛病。

4.PHP DocBlocker

在类或属性、方法上面敲/**回车自动生成参数注释等,这个跟PhpStorm功能类似。

5.PHP Formatter

根据PSR-0、PSR-1、PSR-2或Symfony样式约定自动格式化PHP代码的插件,也是一大利器,格式化好的代码能提高代码的易读性。

6.PHP Namespace Resolver

PHP名称空间解析器可以导入和扩展类。

7.PHP Snippets from PHPStorm

也是类似PhpStorm的功能,例如输入pubf选中回车可以快捷生成public function的代码,还有更多方便代码可以看插件说明。

GitLens — Git supercharged

git管理利器,装上以后,每一行 code 的作者、提交时间、commit log 等信息,一目了然。安装后活动栏有个gitlens的图标,也可以在这里面进行git的相关操作。

9.Project Manager

当你打开项目文件夹进行开发时,如果平时不想从菜单的打开最近的文件中再次打开其他项目,那么这个项目管理插件就非常适合你。安装后,活动栏有Project Manager的图标,点开可以看到保存的项目列表,当然,这需要你平时手动去添加项目,当你打开一个项目文件夹时,ctrl+shift+p,看到project manager - save project选项,回车就行。以后就可以从列表中快速打开项目了。

10.Settings Sync

VS Code的设置同步插件,使用这个插件需要注册Github账户,并生成github的token填入,具体操作方法可以百度一下。

11.Better Align

用过IDEA和PHPStorm的应该非常喜欢他的格式化方式,特别是对一些数组、注释的对齐格式化,代码非常工整,易读性大大提高。在VSCode中可以安装这个插件来实现,安装后设置下快捷键,使用很方便。快捷键设置如下:

打开顶部菜单栏,文件—首选项—键盘快捷方式,再点右上角的【打开键盘快捷方式JSON】,写入代码:

// 如果最外层没有中括号的,需要自己加上,已有就不加了[    {        "key": "shift+alt+=",  // 这是个人喜好,不喜欢的可以自行更换        "command": "wwm.aligncode",        "when": "editorTextFocus && !editorReadonly"    }]

保存后就能使用了。

以上就是我在vs code中常用的插件,还有一些sftp、ssh相关的强大插件,日后开发中肯定会使用到的。

个人的主题设置

主题这种东西,每个人审美观不同,找主题就像找女朋友一样,找到一个适合自己的主题对于日后开发是非常重要的。我本人对界面的要求比较高,当初使用PhpStorm也是看中了PhpStorm 2017.2.4版本 的Monokai主题,这款主题和Sublime、VS Code上的有些不同,PhpStorm 2017.2.4之后的版本对这套主题也有修改,但我一直很喜欢2017.2.4,看着真舒服。

我在VS Code上找了很多主题,没有一套像PhpStorm适合我的眼睛,有些看久了眼睛发花。最后找到一款叫Monokai Alt的主题,作者也是基于PhpStorm的配色模板写的,不过依然有些不满意,最后我决定自己做修改。参考了这位老哥的文章对Monokai Alt的主题做了些修改,不过最终还是有些区别,比如Php的$变量和函数的参数在VS Code里被识别为一个类型,无法区别颜色,这实在没辙,就这能这样了。

下面提供我修改后的主题配色方案,首先打开目录:C:Users用户名.vscodeextensionsbenjaminblonde.monokai-alt-1.0.0themes,打开monokai-alt-color-theme.json文件,替换以下内容:

{  "name": "Monokai Alt",  "colors": {    "activityBar.background": "#21252b",    "activityBar.foreground": "#D7DAE0",    "activityBarBadge.background": "#528bff",    "activityBarBadge.foreground": "#F8FAFD",    "button.background": "#528bff",    "dropdown.background": "#1d1f23",    "diffEditor.insertedTextBackground": "#007e9733",    "dropdown.border": "#181A1F",    "editor.background": "#272822",    "editor.foreground": "#F8F8F2",    "editorError.foreground": "#c24038",    "editorRuler.foreground": "#484848",    "editor.lineHighlightBackground": "#3b3a32",    "editor.selectionBackground": "#3E4451",    "editorCursor.foreground": "#f8f8f0",    "editor.findMatchBackground": "#42557B",    "editor.findMatchHighlightBackground": "#314365",    "editorGroup.background": "#181A1F",    "editorGroup.border": "#181A1F",    "editorGroupHeader.tabsBackground": "#21252B",    "editorIndentGuide.background": "#3B4048",    "editorLineNumber.foreground": "#f8f8f0",    "editorWhitespace.foreground": "#3B4048",    "editorHoverWidget.background": "#21252B",    "editorHoverWidget.border": "#181A1F",    "editorSuggestWidget.background": "#21252B",    "editorSuggestWidget.border": "#181A1F",    "editorSuggestWidget.selectedBackground": "#2c313a",    "input.background": "#1d1f23",    "list.activeSelectionBackground": "#3f64ad",    "list.activeSelectionForeground": "#d7dae0",    "list.focusBackground": "#3f64ad",    "list.hoverBackground": "#3f64ad",    "list.highlightForeground": "#C5C5C5",    "list.inactiveSelectionBackground": "#344D89",    "list.inactiveSelectionForeground": "#d7dae0",    "notification.background": "#21252b",    "scrollbarSlider.background": "#4E566680",    "scrollbarSlider.activeBackground": "#747D9180",    "scrollbarSlider.hoverBackground": "#5A637580",    "sideBar.background": "#3C3F41",    "sideBarSectionHeader.background": "#21252b",    "statusBar.background": "#2f5691",    "statusBar.foreground": "#f8f8f2",    "statusBarItem.hoverBackground": "#2c313a",    "statusBar.noFolderBackground": "#21252B",    "statusBar.debuggingBackground": "#21252B",    "tab.activeBackground": "#515658",    "tab.border": "#181A1F",    "tab.inactiveBackground": "#3C3E3F",    "tab.inactiveForeground": "#ddddd7",    "titleBar.activeBackground": "#282c34",    "titleBar.activeForeground": "#f8f8f2",    "titleBar.inactiveBackground": "#282C34",    "titleBar.inactiveForeground": "#8E8F8F",    "gitDecoration.modifiedResourceForeground": "#3dbbff",    "scrollbar.shadow": "#0c0d0f"  },  "tokenColors": [    {      "settings": {        "foreground": "#F8F8F2",        "findHighlight": "#FFE792",        "findHighlightForeground": "#000000",        "selectionBorder": "#222218",        "activeGuide": "#9D550FB0",        "bracketsForeground": "#F8F8F2A5",        "bracketsOptions": "underline",        "bracketContentsForeground": "#F8F8F2A5",        "bracketContentsOptions": "underline",        "tagsOptions": "stippled_underline"      }    },    {      "name": "Comment",      "scope": [        "comment",    ],      "settings": {        "foreground": "#777777",      }    },    {      "name": "Comment JSdoc",      "scope": [        "comment.block.documentation storage.type.class",        "punctuation.definition.block.tag",        "entity.name.type.instance"      ],      "settings": {        "foreground": "#d8d8d8",        "fontStyle": "italic"      }    },    {      "name": "String",      "scope": [        "string",        "string.template"      ],      "settings": {        "foreground": "#E6DB74"      }    },    {      "name": "Number",      "scope": "constant.numeric",      "settings": {        "foreground": "#AE81FF"      }    },    {      "name": "Embeded String Begin and End",      "scope": [        "string.embedded.begin",        "string.embedded.end"      ],      "settings": {        "foreground": "#A6E22E"      }    },    {      "name": "Embeded String",      "scope": "string.embedded",      "settings": {        "foreground": "#A6E22E"      }    },    {      "name": "User-defined constant",      "scope": [        "constant.character",        "constant.other"      ],      "settings": {        "foreground": "#9876AA"      }    },    {      "name": "Language Variable",      "scope": "variable.language",      "settings": {        "foreground": "#F92672"      }    },    {      "name": "Variable",      "scope": [        "variable.readwrite",        "variable.readwrite.other.block"      ],      "settings": {        "foreground": "#66D9EF"      }    },    {      "name": "Keyword",      "scope": [        "keyword",        "keyword.operator.logical",        "keyword.operator.constructor"      ],      "settings": {        "foreground": "#F92672"      }    },    {      "name": "Keyword Operator",      "scope": "keyword.operator",      "settings": {        "foreground": "#F92672"      }    },    {      "name": "Storage",      "scope": "storage",      "settings": {        "foreground": "#F92672"      }    },    {      "name": "Class name",      "scope": [        "entity.name.class",        "entity.name.module",        "entity.name.type",        "storage.identifier",        "support.class"      ],      "settings": {        "fontStyle": "underline",        "foreground": "#F8F8F2"      }    },    {      "name": "meta.objectliteral",      "scope": "meta.objectliteral",      "settings": {        "foreground": "#fb9a4bff"      }    },    {      "name": "Other variable",      "scope": [        "variable.other.property",        "variable.other.block"      ],      "settings": {        "foreground": "#F8F8F2"      }    },    {      "name": "Inherited class",      "scope": "entity.other.inherited-class",      "settings": {        "foreground": "#A6E22E"      }    },    {      "name": "Function name",      "scope": [        "entity.name.function",        "support.function"      ],      "settings": {        "foreground": "#A6E22E"      }    },    {      "name": "Function call",      "scope": "entity.name.function-call",      "settings": {        "foreground": "#F8F8F2"      }    },    {      "name": "Builtin Functions",      "scope": [        "function.support.builtin",        "function.support.core"      ],      "settings": {        "foreground": "#A6E22E"      }    },    {      "name": "Tag attribute",      "scope": "entity.other.attribute-name",      "settings": {        "foreground": "#A6E22E"      }    },    {      "name": "Library class/type",      "scope": [        "support.type",        "support.variable",        "support.constant"      ],      "settings": {        "foreground": "#66D9EF"      }    },    /* --------------------------------------------- */    /* --------------------------------------------- */    /* --------------------------------------------- */    {      "name": "Storage type",      "scope": "storage.type",      "settings": {        "foreground": "#F92672"      }    },    {      "name": "Built-in constant",      "scope": "constant.language",      "settings": {        "foreground": "#F92672"      }    },    {      "name": "TemplateString and spread",      "scope": [        "meta.template.expression.js",        "keyword.operator.spread"      ],      "settings": {        "foreground": "#F8F8F2"      }    },    {      "name": "Variable $",      "scope": "variable",      "settings": {        "fontStyle": "italic",        "foreground": "#fb9a4bff" //9876AA      }    },    {      "name": "Function argument",      "scope": "variable.parameter",      "settings": {        "fontStyle": "italic",        "foreground": "#FD971F"      }    },    {      "name": "Object key",      "scope": "meta.object-literal.key",      "settings": {        "foreground": "#F8F8F2"      }    },    {      "name": "punctuation",      "scope": [        "punctuation.accessor",       "meta.brace.round",        "punctuation.definition.block"      ],      "settings": {        "foreground": "#F8F8F2"      }    },    {      "name": "HTML tags",      "scope": [        "entity.name.tag.js",        "entity.name.tag.inline.any.html",        "entity.name.tag.block.any.html",        "entity.name.tag.structure.any.html",        "entity.name.tag.jade"      ],      "settings": {        "foreground": "#d9d9fa"      }    },    {      "name": "= in JSX attr",      "scope": "meta.tag.attributes keyword.operator.assignment.js",      "settings": {        "foreground": "#e6db74"      }    },    {      "name": "HTML TAGS",      "scope": [        "entity.name.tag.css"      ],      "settings": {        "foreground": "#F92672"      }    },    {      "name": "meta.attribute-selector.scss",      "scope": "meta.attribute-selector.scss",      "settings": {        "foreground": "#E6DB74"      }    },    {      "name": "Variable",      "scope": [        "variable.css",        "variable.scss",        "variable.less",        "variable.sass"      ],      "settings": {        "foreground": "#FD971F"      }    },    {      "name": "meta.attribute-selector.scss",      "scope": [        "punctuation.definition.attribute-selector.begin.bracket.square.scss",        "punctuation.definition.attribute-selector.end.bracket.square.scss"      ],      "settings": {        "foreground": "#F8F8F2"      }    },    {      "name": "CSS media name",      "scope": "support.constant.media",      "settings": {        "foreground": "#a6e22e"      }    },    {      "name": "StyleSheet Property name and operators",      "scope": [        "support.type.property-name.css",        "support.type.property-name.scss",        "support.type.property-name.less",        "support.type.property-name.sass",        "support.function.url"      ],      "settings": {        "fontStyle": "italic",        "foreground": "#66D9EF"      }    },    {      "name": "StyleSheet Property value",      "scope": [        "support.constant.css",        "support.constant.scss",        "support.constant.less",        "support.constant.sass",        "support.constant.font-name.css",        "support.constant.color.w3c-standard-color-name.css",        "constant.other.color.rgb-value.hex.css"      ],      "settings": {        "foreground": "#A6E22E"      }    },    {      "name": "StyleSheet Property value 2",      "scope": [        "support.constant.property-value",        "meta.property-value.css"      ],      "settings": {        "foreground": "#6fee4c"      }    },    {      "name": "StyleSheet Punctuation",      "scope": [       "punctuation.section.function.begin.bracket.round.css",        "punctuation.section.function.end.bracket.round.css"      ],      "settings": {        "foreground": "#fff"      }    },    {      "name": "StyleSheet Variable String",      "scope": [        "variable.css.string",        "variable.scss.string",        "variable.less.string",        "variable.sass.string"      ],      "settings": {        "foreground": "#A6E22E"      }    },    {      "name": "StyleSheet Unit",      "scope": [        "unit.css",        "unit.scss",        "unit.less",        "unit.sass"      ],      "settings": {        "foreground": "#A6E22E"      }    },    {      "name": "StyleSheet Function",      "scope": [        "function.css",        "function.scss",        "function.less",        "function.sass"      ],      "settings": {        "foreground": "#66D9EF"      }    },    {      "name": "Json Property",      "scope": "support.dictionary.json",      "settings": {        "foreground": "#66D9EF"      }    },    {      "name": "Invalid",      "scope": "invalid",      "settings": {        "foreground": "#F8F8F0"      }    },    {      "name": "Invalid deprecated",      "scope": "invalid.deprecated",      "settings": {        "foreground": "#F8F8F0"      }    },    {      "name": "JSON String",      "scope": "structure.dictionary.property-name.json",      "settings": {        "foreground": "#CFCFC2"      }    },    {      "name": "Link",      "scope": "string.detected-link",      "settings": {        "foreground": "#66D9EF"      }    },    {      "name": "diff.header",      "scope": [        "meta.diff",        "meta.diff.header"      ],      "settings": {        "foreground": "#75715E"      }    },    {      "name": "diff.deleted",      "scope": "markup.deleted",      "settings": {        "foreground": "#F92672"      }    },    {      "name": "diff.inserted",      "scope": "markup.inserted",      "settings": {        "foreground": "#A6E22E"      }    },    {      "name": "diff.changed",      "scope": "markup.changed",      "settings": {        "foreground": "#E6DB74"      }    },    {      "scope": "constant.numeric.line-number.find-in-files - match",      "settings": {        "foreground": "#AE81FFA0"      }    },    {      "scope": "entity.name.filename.find-in-files",      "settings": {        "foreground": "#E6DB74"      }    },    {      "name": "Markup: Emphasis",      "scope": "markup.italic, markup.italic.markdown",      "settings": {        "fontStyle": "italic"      }    },    {      "name": "Markup: Emphasis Punctuation",      "scope": "punctuation.definition.italic.markdown",      "settings": {        "foreground": "#696969"      }    },    {      "name": "Markdown: Link",      "scope": "markup.underline.link.markdown",      "settings": {        "foreground": "#66D9EF"      }    },    {      "name": "Markdown: Bold",      "scope": "markup.bold.markdown",      "settings": {        "fontStyle": "bold"      }    },    {      "name": "Markdown: Bold Punctuation",      "scope": "punctuation.definition.bold.markdown",      "settings": {        "foreground": "#696969"      }    },    {      "name": "Markdown: Heading",      "scope": "markup.heading.markdown",      "settings": {        "fontStyle": "bold",        "foreground": "#F92672"      }    },    {      "name": "Markdown: Heading",      "scope": "punctuation.definition.heading.markdown",      "settings": {        "foreground": "#696969"      }    },    {      "name": "Markdown: Quote",      "scope": "markup.quote.markdown",      "settings": {        "foreground": "#A6E22E"      }    },    {      "name": "Markdown: Separator",      "scope": "meta.separator.markdown",      "settings": {        "foreground": "#A6E22E",        "fontStyle": "bold"      }    },    {      "name": "Markdown: Raw",      "scope": "markup.raw.inline.markdown, markup.raw.block.markdown",      "settings": {        "foreground": "#66D9EF"      }    },    {      "name": "Markdown: List Punctuation",      "scope": "punctuation.definition.list_item.markdown",      "settings": {        "fontStyle": "bold",        "foreground": "#ffffff"      }    }  ]}

效果图:

个人的其他常用软件

这里再给大家推荐在开发中一些常用的工具。

git版本管理工具

如果你用不惯VS Code的git插件,又不想敲代码来管理的代码,这里推荐使用Source Tree(建议用2.6的版本,新版的注册很麻烦,除非你能跳越过那堵墙完成注册,2.6版本的可以百度下跳过注册安装)或TortoiseGit来使用操作git,界面化操作更容易一些。

ftp工具

这个很多,个人使用FileZilla

ftp对比工具

Beyond Compare 4,很实用,可惜它不免费。

ssh工具

XShell或者Termius,前者可以注册学校版免费使用,后者免费,而且界面比较好看,推荐后者。

数据库工具

免费的:mysql就用HeidiSQLphpmyadmin,postgreSql就用官方的PgAdmin

收费的:Navicat Premium版本对很多数据库都支持,如果有能力的话,还是推荐大家购买正版使用。

办公软件

免费的:WPS教育版,没有广告,还有云服务,文件不怕丢失。

收费的:office,这个大家都知道的。

思维导图

推荐Xmind,主题和颜色搭配好看;MindMaster也行。这两款专业版需要收费,平时用免费版即可。

流程图

免费的:WPS里的工具有,好像就是processon,在线版的流程图编辑,云服务存储;

收费的:visio

总结

古人云:工欲善其事必先利其器。

好的开发工具对于日常工作是一把利器,每个人应该找到适合自己的那一把。

生命在于折腾,在折腾中学习,在折腾中成长。

最后说下:尽量不要使用盗版软件,盗版软件就是盗取智慧,尊重版权,尊重作者!


相关文章

专题分类