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.

Популярні

Інше, що варто прочитати

11 Оновлено 01 червня, 2026

Управління доступом у Filament за допомогою плагіна Shield

Дізнайтеся, як пакет Filament Shield забезпечує управління доступом до ваших панелей, ресурсів і віджетів у Laravel. Ця стаття розкриває основні можливості пакету, включаючи просту установку та підтримку багатокористувацьких середовищ — не пропустіть!

10 Оновлено 01 червня, 2026

Генерація документації в Laravel за допомогою штучного інтелекту

Docudoodle — це потужний пакет для генерації документації в Laravel, який допомагає легко аналізувати вашу кодову базу та створювати документацію за допомогою обраного вами AI. Чи готові ви дізнатися, як цей інструмент може спростити вашу роботу з документуванням коду? Читайте далі!

17 Оновлено 01 червня, 2026

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

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