Questo articolo è un’indagine iniziale su v0.0.19, aggiornata a giugno 2026. Prima della registrazione su Packagist non è ancora possibile installarlo tramite composer.
Cos’è Laravel LSP
Laravel LSP (Language Server Protocol) è lo strumento ufficiale che fornisce all’editor funzionalità IDE consapevoli del framework Laravel. Il Language Server Protocol è un protocollo standard di comunicazione tra client LSP (l’editor, ecc.) e server LSP (Laravel LSP), che permette un’esperienza di sviluppo unificata su più editor.
Funzionalità offerte da Laravel LSP:
- Completamento — auto-completamento di rotte, viste, chiavi di configurazione, chiavi di traduzione, componenti Livewire, ecc.
- Informazioni al passaggio del cursore — quando ci passi sopra vengono mostrate descrizioni, documentazione e informazioni di contesto
- Diagnostica — rilevamento in tempo reale dei problemi nel codice
- Link nei documenti — funzione di link tra file e risorse
- Quick fix — proposte di correzione automatica per problemi comuni
- Jump to definition — salto alla posizione di definizione di un simbolo
Perché serve
Il completamento PHP standard degli editor non comprende il livello di astrazione del framework Laravel. Ad esempio:
- Nel primo argomento di
Route::get(), digitando pattern di URI non c’è completamento
- Digitando il nome della vista in
view('users.index'), non viene completato il nome reale del file
- Chiavi di configurazione (
config('app.name')) e chiavi di traduzione (trans('messages.welcome')) sono fuori dal completamento
- Anche il completamento e la validazione all’interno dei template Blade non sono supportati dagli editor standard
Laravel LSP comprende questa “contestualità specifica del framework” e offre completamento e diagnostica accurati.
Installazione
Installazione globale
Installalo globalmente con Composer:
composer global require laravel/lsp
Verifica che la directory bin globale di Composer sia nel PATH e potrai avviarlo con il comando:
Installazione da sorgente
Se vuoi usare la versione di sviluppo, clona il repository ed esegui:
gh repo clone laravel/lsp
cd lsp
composer install
php server
Configura un alias della shell per poter usare il comando laravel-lsp:
# Per Zsh
echo 'alias laravel-lsp="php /path/to/lsp/server"' >> ~/.zshrc
source ~/.zshrc
# Per Bash
echo 'alias laravel-lsp="php /path/to/lsp/server"' >> ~/.bashrc
source ~/.bashrc
Guida di configurazione per editor
Poiché Laravel LSP usa il protocollo LSP standard, funziona su qualsiasi editor che supporta LSP. Ecco come configurare i principali editor.
Sublime Text
Installa il pacchetto LSP, quindi aggiungi la configurazione client in Preferences: LSP Settings:
{
"clients": {
"laravel-lsp": {
"enabled": true,
"command": ["laravel-lsp"],
"selector": "embedding.php | text.html.blade"
}
}
}
Neovim
Da Neovim 0.11 in poi puoi aggiungere configurazioni LSP personalizzate direttamente:
vim.lsp.config("laravel_lsp", {
cmd = { "laravel-lsp" },
filetypes = { "php", "blade" },
root_markers = { "artisan", "composer.json", ".git" },
})
vim.lsp.enable("laravel_lsp")
Se usi nvim-lspconfig, registra così:
local lspconfig = require("lspconfig")
local configs = require("lspconfig.configs")
if not configs.laravel_lsp then
configs.laravel_lsp = {
default_config = {
cmd = { "laravel-lsp" },
filetypes = { "php", "blade" },
root_dir = lspconfig.util.root_pattern("artisan", "composer.json", ".git"),
},
}
end
lspconfig.laravel_lsp.setup({})
Cursor
Cursor supporta le estensioni di VS Code, quindi se l’estensione Laravel è già installata funziona automaticamente. Per lo sviluppo locale usa un client LSP compatibile con VS Code e specifica il comando:
VS Code
Anche VS Code dispone della funzionalità client LSP, quindi puoi configurarlo tramite estensione.
OpenCode
In opencode.json abilita il supporto LSP e configura Laravel LSP come server personalizzato:
{
"$schema": "https://opencode.ai/config.json",
"lsp": {
"laravel-lsp": {
"command": ["laravel-lsp"],
"extensions": [".php", ".blade.php"]
}
}
}
Configurazione in GitHub Copilot CLI
Se usi GitHub Copilot CLI puoi configurarlo globalmente in ~/.copilot/lsp-config.json. Non è necessaria una configurazione separata dell’editor:
{
"lspServers": {
"laravel-lsp": {
"command": "laravel-lsp",
"fileExtensions": {
".php": "php",
".blade.php": "blade"
}
}
}
}
La configurazione del server LSP di Copilot CLI supporta anche initializationOptions, quindi puoi usare tutte le impostazioni dettagliate descritte più avanti.
Opzioni di configurazione
Il client LSP può passare a Laravel LSP configurazioni dettagliate tramite initializationOptions.
Rilevamento dell’ambiente PHP
L’opzione phpEnvironment controlla il comando PHP usato per l’indicizzazione dei dati del progetto. Il valore predefinito è auto per il rilevamento automatico:
| Valore | Comportamento del comando PHP |
|---|
auto | Rilevamento nell’ordine Herd → Valet → Sail → Lando → DDEV → PHP locale |
herd | Usa herd which-php |
valet | Usa valet which-php |
sail | Con Sail in esecuzione, usa ./vendor/bin/sail php |
lando | Usa lando php |
ddev | Usa ddev php |
local | Usa direttamente il binario PHP locale |
Se il rilevamento fallisce o viene passato un valore non valido, si ricade su php.
Esempio base di configurazione
{
"phpEnvironment": "auto",
"phpCommand": ["php"],
"definitionProvider": false
}
Configurazione per singola funzionalità
Ogni funzionalità può essere abilitata/disabilitata singolarmente. I suffissi sono Completion, Diagnostics, Hover, Link, ecc.:
{
"routeCompletion": true,
"routeDiagnostics": true,
"viewDiagnostics": false,
"translationHover": true,
"configLink": true,
"envCompletion": true,
"bladeComponentLink": true
}
Elenco delle funzionalità offerte
| Area | Completamento | Hover | Diagnostica | Link | Quick fix |
|---|
| Rotte | ✓ | ✓ | ✓ | ✓ | - |
| Viste & Blade | ✓ | ✓ | ✓ | ✓ | ✓ |
| Traduzioni | ✓ | ✓ | - | - | - |
| Configurazione | ✓ | ✓ | ✓ | ✓ | - |
| Variabili d’ambiente | ✓ | ✓ | ✓ | ✓ | ✓ |
| Asset & Mix | ✓ | ✓ | ✓ | ✓ | - |
| Middleware | ✓ | ✓ | ✓ | ✓ | - |
| Inertia | ✓ | - | ✓ | ✓ | - |
| Livewire | ✓ | ✓ | - | ✓ | - |
| Auth & Policy | ✓ | ✓ | ✓ | ✓ | - |
| Container Bindings | ✓ | ✓ | ✓ | ✓ | - |
| Validation | ✓ | - | - | - | - |
| Controller Actions | ✓ | - | ✓ | ✓ | - |
| Eloquent | ✓ | - | - | - | - |
Quick start
- Installazione —
composer global require laravel/lsp
- Configurazione editor — fai riferimento alla guida per editor sopra
- Apri un progetto Laravel — il server indicizza a partire dalla root i dati di progetto come routes, views, translations, config
- Usa il completamento — nei file PHP e nei template Blade il completamento consapevole del framework si attiva automaticamente
Conclusioni
Laravel LSP è uno strumento che migliora notevolmente l’esperienza dello sviluppatore. Comprende la contestualità specifica del framework che le funzionalità standard degli editor non gestiscono e offre completamento e diagnostica più precisi e utili.
Requisiti necessari:
- PHP 8.2 o superiore
- Composer
- Editor compatibile con LSP (Sublime Text, Neovim, Cursor, VS Code, ecc.)
Materiale di riferimento: