把你的 Sublime Text 3 打造成 PHP 的 IDE

Sublime PHP IDE

一直以来,Sublime Text均只是作为一款编辑器,而非IDE(集成开发环境)。包括俺开发PHP时候,Sublime Text包管理中也很难找到支持真正意义上的PHP集成(包括定义位置跳转、自动补全两个基本功能)。

在不久前微软VSCode(Visiual Studio Code)团队向社会输出了他们的Language Server ( https://langserver.org/ )Protocol协议,讲市面上五花八门各种编辑器IDE的补全实现标准化。包括 Code completion、Hover、Jump to def、Find references、Symbol search 和 Diagnostics 等功能的规范化。

LSP包含两部分组成:

  • Language Server
  • Language Client

Language Server是启动的Demon(走协议)或Cli(标准输出stdout)通信的服务, Language Client向其发出请求, Language Server按照约定响应Client需要的数据,最后再由Client实现对编辑器插件指令的转换,实现IDE补全、跳转等功能。

Sublime Text的插件由这两个Github仓库组成:

安装方法:

  • 将你 composer.json 的 “minimum-stability” 设置成 “dev”(一定要做这一步,因为composer默认的 minimum-stability 不是dev)
  • composer require felixfbecker/php-language-server
  • Sublime Text > Package Controller > Install > LSP 关键字 > 安装
  • 修改LSP的PHP补全为如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"clients": {
"phpls": {
"command": [
"path/to/bin/php",
"path/to/project/vendor/felixfbecker/language-server/bin/php-language-server.php"
],
"enabled": true,
"env": {},
"initializationOptions": {},
"languageId": "php",
"scopes": ["source.php", "embedding.php"],
"settings": {},
"syntaxes": [
"Packages/PHP/PHP.sublime-syntax"
]
}
}
}

使用方法:

  • 跳转定义: alt+ctrl
  • 自动补全: ->::$