Passer au contenu principal
Cet article est une analyse préliminaire basée sur la v0.0.19 (juin 2026). Le package n’est pas encore publié sur Packagist et ne peut donc pas être installé via Composer pour l’instant.

Qu’est-ce que Laravel LSP ?

Laravel LSP (Language Server Protocol) est l’outil officiel qui fournit à votre éditeur des fonctionnalités IDE conscientes du framework Laravel. Language Server Protocol est le protocole standard de communication entre un client LSP (éditeur) et un serveur LSP (Laravel LSP), ce qui permet une expérience de développement unifiée à travers plusieurs éditeurs. Fonctionnalités offertes par Laravel LSP :
  • Complétion — auto-complétion des routes, vues, clés de configuration, clés de traduction, composants Livewire, etc.
  • Informations au survol — survol pour afficher description, documentation et informations contextuelles
  • Diagnostics — détection en temps réel des problèmes dans le code
  • Liens de document — liaison entre fichiers et ressources
  • Correctifs rapides — suggestions de correction automatique pour les problèmes courants
  • Aller à la définition — navigation vers la définition d’un symbole

Pourquoi c’est utile

La complétion PHP standard des éditeurs ne comprend pas les couches d’abstraction de Laravel. Par exemple :
  • Aucune complétion sur le premier argument de Route::get() (le pattern d’URI)
  • La saisie du nom de vue dans view('users.index') n’est pas complétée avec les noms réels des fichiers
  • Les clés de configuration (config('app.name')) et de traduction (trans('messages.welcome')) ne sont pas prises en charge
  • La complétion et la vérification dans les templates Blade ne sont pas gérées non plus
Laravel LSP comprend ces « contextes propres au framework » et fournit une complétion et des diagnostics précis.

Installation

Installation globale

Installez globalement avec Composer :
composer global require laravel/lsp
Vérifiez que le répertoire des binaires globaux de Composer est dans le PATH, puis lancez :
laravel-lsp

Installation depuis les sources

Pour utiliser la version de développement, clonez le dépôt et exécutez :
gh repo clone laravel/lsp
cd lsp
composer install
php server
Configurez un alias shell pour utiliser la commande laravel-lsp :
# Zsh
echo 'alias laravel-lsp="php /path/to/lsp/server"' >> ~/.zshrc
source ~/.zshrc

# Bash
echo 'alias laravel-lsp="php /path/to/lsp/server"' >> ~/.bashrc
source ~/.bashrc

Guide de configuration par éditeur

Laravel LSP utilise le protocole LSP standard, il fonctionne donc avec tout éditeur compatible LSP. Voici comment le configurer avec les principaux éditeurs.

Sublime Text

Installez le package LSP, puis ajoutez la configuration du client dans Preferences: LSP Settings :
{
    "clients": {
        "laravel-lsp": {
            "enabled": true,
            "command": ["laravel-lsp"],
            "selector": "embedding.php | text.html.blade"
        }
    }
}

Neovim

Sous Neovim 0.11+, vous pouvez ajouter directement une configuration LSP personnalisée :
vim.lsp.config("laravel_lsp", {
    cmd = { "laravel-lsp" },
    filetypes = { "php", "blade" },
    root_markers = { "artisan", "composer.json", ".git" },
})

vim.lsp.enable("laravel_lsp")
Avec nvim-lspconfig, enregistrez ainsi :
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 prend en charge les extensions VS Code : si l’extension Laravel est installée, elle est déjà compatible. En développement local, utilisez un client LSP compatible VS Code en spécifiant la commande :
laravel-lsp

VS Code

VS Code dispose également d’un client LSP et peut être configuré via une extension.

OpenCode

Activez le support LSP dans opencode.json en déclarant Laravel LSP comme serveur personnalisé :
{
    "$schema": "https://opencode.ai/config.json",
    "lsp": {
        "laravel-lsp": {
            "command": ["laravel-lsp"],
            "extensions": [".php", ".blade.php"]
        }
    }
}

Configuration avec GitHub Copilot CLI

Si vous utilisez GitHub Copilot CLI, une configuration globale est possible dans ~/.copilot/lsp-config.json. Aucune configuration d’éditeur supplémentaire n’est nécessaire :
{
  "lspServers": {
    "laravel-lsp": {
      "command": "laravel-lsp",
      "fileExtensions": {
        ".php": "php",
        ".blade.php": "blade"
      }
    }
  }
}
La configuration LSP de Copilot CLI prend également en charge initializationOptions, ce qui permet d’utiliser tous les réglages avancés décrits ci-après.

Options de configuration

Le client LSP peut transmettre des réglages détaillés à Laravel LSP via initializationOptions.

Détection de l’environnement PHP

L’option phpEnvironment contrôle la commande PHP utilisée pour indexer les données du projet. Par défaut, auto détecte automatiquement :
ValeurComportement de la commande PHP
autoDétection dans l’ordre Herd → Valet → Sail → Lando → DDEV → PHP local
herdUtilise herd which-php
valetUtilise valet which-php
sailUtilise ./vendor/bin/sail php quand Sail tourne
landoUtilise lando php
ddevUtilise ddev php
localUtilise directement le binaire PHP local
En cas d’échec de détection ou de valeur invalide, il retombe sur php.

Exemple de configuration de base

{
    "phpEnvironment": "auto",
    "phpCommand": ["php"],
    "definitionProvider": false
}

Configuration par fonctionnalité

Chaque fonctionnalité peut être activée ou désactivée individuellement. Les suffixes sont Completion, Diagnostics, Hover, Link, etc. :
{
    "routeCompletion": true,
    "routeDiagnostics": true,
    "viewDiagnostics": false,
    "translationHover": true,
    "configLink": true,
    "envCompletion": true,
    "bladeComponentLink": true
}

Liste des fonctionnalités disponibles

DomaineComplétionSurvolDiagnosticsLiensCorrectifs rapides
Routes-
Vues & Blade
Traductions---
Configuration-
Variables d’environnement
Assets & Mix-
Middleware-
Inertia--
Livewire--
Auth & Policies-
Container Bindings-
Validation----
Actions de contrôleur--
Eloquent----

Démarrage rapide

  1. Installercomposer global require laravel/lsp
  2. Configurer l’éditeur — reportez-vous au guide par éditeur ci-dessus
  3. Ouvrir un projet Laravel — le serveur indexe depuis la racine les données du projet (routes, vues, traductions, config, etc.)
  4. Utiliser la complétion — la complétion consciente du framework fonctionne automatiquement dans les fichiers PHP et les templates Blade

Conclusion

Laravel LSP améliore considérablement l’expérience développeur. Il comprend les contextes propres au framework, hors de portée des fonctionnalités standard des éditeurs, et fournit une complétion et des diagnostics plus précis et pertinents. Prérequis :
  • PHP 8.2 ou supérieur
  • Composer
  • Éditeur compatible LSP (Sublime Text, Neovim, Cursor, VS Code, etc.)
Ressources :
Dernière modification le 13 juillet 2026