PHPantom — швидкий PHP Language Server, написаний на Rust

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 05 квітня, 2026
Відкрийте для себе PHPantom — неймовірно швидкий інструмент на Rust для миттєвого аналізу мільйонів рядків коду. Дізнайтеся, як цей LSP забезпечує розумну типізацію та повну підтримку Laravel при мінімальних витратах ресурсів.

PHPantom — це реалізація PHP Language Server Protocol (LSP), написана на Rust. Головні переваги інструменту — швидкий запуск та низьке споживання пам'яті. У проєкті з 21 000 PHP-файлів та 1,5 млн рядків коду сервер стає до роботи менш ніж за секунду:

Метрика PHPantom
Час готовності < 1 секунди
Використання RAM 59 MB
Кеш на диску 0 MB

Взаємодія відбувається через stdin/stdout за стандартним протоколом LSP, що забезпечує сумісність із будь-яким сучасним редактором. JetBrains phpstorm-stubs вбудовані безпосередньо у бінарний файл, тому розробнику не потрібно завантажувати додаткові дані чи керувати кешем.

# Інтелектуальний аналіз типів

PHPantom розпізнає типи у generics, анотаціях PHPStan, умовних типах повернення та структурах масивів чи об'єктів. Завдяки підтримці тегів @template та @template-covariant, generic-колекції забезпечують коректне автодоповнення при кожному виклику:

/**
 * @template T
 */
class Collection
{
    /** @var T[] */
    private array $items = [];
 
    /**
     * @param T $item
     */
    public function add(mixed $item): void
    {
        $this->items[] = $item;
    }
 
    /**
     * @return T|null
     */
    public function first(): mixed
    {
        return $this->items[0] ?? null;
    }
}
 
/** @var Collection<User> $users */
$users = new Collection();
$users->add(new User());
$user = $users->first(); // тип визначено як User|null

Laravel Eloquent підтримується без жодних плагінів: зв'язки, аксесори та властивості моделей розпізнаються для автодоповнення та швидкого переходу до визначення.

# Рефакторинг

PHPantom дозволяє перейменовувати символи у межах всього робочого простору та змінювати видимість методів. Список функцій у README включає також виділення методів/функцій, роботу зі змінними, Constructor Parameter Promotion та реалізацію інтерфейсів (підтримка залежить від редактора та версії PHP).

Інструмент підсвічує застарілі (@deprecated) символи безпосередньо в коді та пропонує швидкі дії для спрощення виразів.

# Налаштування редактора

Готові бінарні файли для Linux, macOS та Windows доступні на сторінці релізів. Додайте бінарний файл до вашого PATH і налаштуйте редактор:

Neovim — додайте сервер у конфігурацію LSP, вкажіть шлях до файлу, filetypes = { "php" } та маркери кореневої директорії (composer.json або .git).

VS Code — встановіть універсальний LSP-клієнт, завантажте бінарний файл і вкажіть шлях до нього для мови php.

Zed — розширення вже доступне у директорії zed-extension/. Воно автоматично завантажує потрібний файл, але ви можете використовувати локальну збірку через PATH.

PHPStorm — встановіть плагін LSP4IJ, створіть новий запис для language server із вказанням шляху до бінарного файлу та прив'яжіть його до PHP-файлів.

Дії PHPantom у Neovim
Дії PHPantom у Neovim
Символи документа у Neovim через PHPantom
Символи документа у Neovim через PHPantom

# Конфігурація проєкту

PHPantom автоматично зчитує composer.json для визначення шляхів автозавантаження. Для додаткових налаштувань використовується файл .phpantom.toml:

[project]
php_version = "8.3"
 
[diagnostics]
unused_variables = true
deprecated_symbols = true
 
[indexing]
strategy = "composer" # або "self" чи "none"

Створити дефолтний конфіг можна командою:

phpantom_lsp --init

Вихідний код проєкту доступний на GitHub: AJenbo/phpantom_lsp.

Популярні

Logomark Logotype

Обробка геопросторових даних за допомогою Laravel Magellan

Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!

Logomark Logotype

Усе, що нам відомо про Livewire 4

Нова версія Livewire 4, представленої Келебом Порзіо на Laracon US 2025, обіцяє значні покращення у швидкості та організації компонентів. Які з інноваційних функцій підкорять ваше серце? Читайте далі, щоб дізнатися більше про те, як Livewire 4 полегшить вашу роботу

Logomark Logotype

Laravel Boost — ваш стартовий набір для програмування з використанням штучного інтелекту

Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel