На першому дні Laracon US 2026 Тейлор Отвелл представив Laravel LSP - офіційний мовний сервер, який навчає редактор розуміти ваш Laravel-застосунок.
Досі пристойна підтримка Laravel у редакторі означала або PhpStorm із плагіном Laravel Idea, або сторонні розширення різної якості. Тепер це вміння постачає сама команда фреймворку - і воно доступне будь-якому редактору, що підтримує Language Server Protocol.
Що саме він розуміє
Покриття помітно ширше за просте автодоповнення класів:
| Область |
Можливості |
| Маршрути |
доповнення, підказки, діагностика, переходи |
| Blade і в'юшки |
доповнення, підказки, діагностика, переходи, виправлення |
| Переклади |
доповнення ключів, локалей і параметрів; підказки |
| Конфіги |
доповнення ключів, підказки, діагностика, переходи |
| Змінні оточення |
доповнення, підказки, діагностика, переходи, виправлення |
| Ассети й Mix |
доповнення, підказки, діагностика, переходи |
| Middleware |
доповнення, підказки, діагностика, переходи |
| Inertia |
доповнення сторінок і властивостей, переходи, діагностика |
| Компоненти Livewire |
доповнення, підказки, переходи |
| Авторизація й політики |
доповнення, підказки, діагностика, переходи |
| Прив'язки контейнера |
доповнення, підказки, діагностика, переходи |
| Правила валідації |
доповнення |
| Дії контролерів |
доповнення, діагностика, переходи |
| Eloquent |
доповнення |
Найцінніше тут - діагностика. Мовний сервер не просто підказує назву конфіг-ключа, а й підсвічує звернення до неіснуючого: одруку в config('servics.mailgun.key') чи виклику маршруту, який ви перейменували минулого тижня.
Які редактори підтримуються
- Sublime Text - офіційне розширення
- Zed - офіційне розширення
- VS Code - офіційне розширення
- Cursor - через розширення для VS Code
- Neovim - конфігурація вручну
- OpenCode - конфігурація вручну
Встановлення
Глобально через Composer:
composer global require laravel/lsp
Потрібен PHP 8.2 або новіший. Є готові бінарники для macOS (arm64 і x64), Linux (arm64 і x64) та Windows (x64).
Для Neovim 0.11+:
vim.lsp.config("laravel_lsp", {
cmd = { "laravel-lsp" },
filetypes = { "php", "blade" },
root_markers = { "artisan", "composer.json", ".git" },
})
vim.lsp.enable("laravel_lsp")
Для OpenCode:
{
"$schema": "https://opencode.ai/config.json",
"lsp": {
"laravel-lsp": {
"command": ["laravel-lsp"],
"extensions": [".php", ".blade.php"]
}
}
}
Налаштування
Пошук PHP керується опцією phpEnvironment, яка за замовчуванням стоїть у auto і послідовно перевіряє Herd, Valet, Sail, Lando, DDEV і локальний PHP. Тобто в типовому оточенні нічого налаштовувати не доведеться.
Кожну можливість можна вимкнути окремо - зручно, якщо якась діагностика заважає на конкретному проєкті. Для Pest є власні опції: pestGenerateDocBlocks і pestHelperFilePath.
Чому це важливо
Laravel завжди спирався на «магію»: фасади, динамічні зв'язки, рядкові ключі конфігів і маршрутів. Це зручно писати, але важко аналізувати статично - саме тому пристойна підтримка в редакторі роками була платною послугою PhpStorm.
Офіційний LSP зрівнює можливості: розробник у Neovim чи Zed отримує ту саму навігацію й діагностику, що й користувач повноцінної IDE. А оскільки протокол стандартний, підтримка нових редакторів більше не залежить від того, чи візьметься за неї хтось зі спільноти.
Вихідний код і повний довідник налаштувань - у репозиторії laravel/lsp.