PHPantom 这是一个用 Rust 编写的 PHP 语言服务器协议 (LSP) 实现,其核心在于快速启动和低内存占用。在一个包含 21,000 个 PHP 文件和 150 万行代码的项目中,它能在不到一秒的时间内完成启动:
| 指标 | PHPantom |
|---|---|
| 准备时间到了 | 小于 1 秒 |
| 内存使用情况 | 59 MB |
| 磁盘缓存 | 0 MB |
它使用标准的 LSP 协议通过 stdin/stdout 进行通信,并可与任何支持 LSP 的编辑器配合使用。JetBrains phpstorm-stubs 直接打包到二进制文件中,因此无需运行时下载或管理缓存。
类型智力
PHPantom 可以解析泛型、PHPStan 注解、条件返回类型以及数组/对象形状之间的类型。它能够处理……
@template
和
@template-covariant
标签,因此通用集合类会在每个调用点生成类型正确的补全:
/*** @template T*/班级
收藏{
/**
@我们的
电视
[]
*/
私人的
大批
$items
=
[];
/***
@参数
电视
$item*/
民众
功能
添加
(
混合
$item)
:
空白{
$this
->
项目[]
=
$item;}
/***
@返回
电视
|
无效的*/
民众
功能
第一的
()
:
混合{
返回
$this
->
项目[
0
]
??
无效的
;}}/**
@我们的
收藏
<
用户
> $users */$用户
=
新的
收藏
();$用户
->
添加
(
新的
用户
());$用户
=
$用户
->
第一的
();
// 推断为 User|null
Laravel Eloquent 无需任何外部插件即可支持——关系、访问器和模型属性都会被解析,以实现代码补全和跳转到定义。
重构
PHPantom 包含用于重命名工作区内符号和更改方法可见性的代码操作。README 文件中的功能对比表列出了其他重构操作——提取方法/函数、提取/内联变量、构造函数参数提升和实现接口方法——但不同编辑器和 PHP 版本可能对此功能的支持有所不同。
它还能检测到
@deprecated
符号和标记以内联方式显示,并包含表达式简化代码操作。
编辑器设置
预编译的 Linux、macOS 和 Windows 二进制文件可从以下网址获取:
发布页面
将二进制文件放在你的……
PATH
然后配置您的编辑器。
还没有
— 在 LSP 配置中添加一个指向该二进制文件的服务器条目,
filetypes = { "php" }
以及根目录标记
composer.json
或者
.git
。
VS 代码
— 安装通用 LSP 客户端扩展,下载二进制文件,并使用语言 ID 配置二进制文件路径
php
。
泽德
— 扩展程序包含在内
zed-extension/
目录。它会自动下载正确的二进制文件;设置
phpantom_lsp
在
PATH
改用本地构建。
PHPStorm
— 安装
LSP4IJ
插件,使用二进制路径创建一个新的语言服务器条目,并将其映射到 PHP 文件类型。
项目配置
PHPantom 读取
composer.json
自动加载路径。
.phpantom.toml
文件支持其他覆盖:
[
项目
]php_version =
8.3[
诊断
]未使用的变量 =
真的已弃用符号 =
真的[
索引
]策略 =
“作曲家”
# 或“自身”或“无”
使用以下命令生成默认配置文件:
phpantom_lsp
- 热的
您可以在以下位置找到该项目: AJenbo/phpantom_lsp 在 GitHub 上。





