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 автоматично зчитує 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.
Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!
Нова версія Livewire 4, представленої Келебом Порзіо на Laracon US 2025, обіцяє значні покращення у швидкості та організації компонентів. Які з інноваційних функцій підкорять ваше серце? Читайте далі, щоб дізнатися більше про те, як Livewire 4 полегшить вашу роботу
Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel