Laravel Doctor, dévoilé à la Laracon US 2026 à Boston, est un nouveau paquet first-party qui ajoute la commande artisan doctor pour diagnostiquer la santé d'une application. Il transforme en code exécutable la check-list classique des installations défaillantes : .env absent, APP_KEY manquant, répertoires de stockage non accessibles en écriture, versions de PHP incompatibles. Les paquets peuvent aussi enregistrer leurs propres contrôles.
Chaque diagnostic est une classe qui inspecte un seul élément et renvoie l'un des six statuts : pass, notice, warn, fail, skip ou error. La commande retourne un code de sortie non nul en cas d'échec ou d'erreur ; --fail-on=warn fait aussi échouer les avertissements, tandis que --fail-on=never garantit un code de sortie propre.
La suite fournie couvre l'environnement (.env, APP_KEY, version PHP face à la contrainte composer.json, extensions, fuseau horaire), Composer (dépendances installées, dump d'autoload optimisé, problèmes réparables du composer.lock), la configuration, la connexion à la base de données y compris les fichiers SQLite et les migrations en attente, l'accessibilité des drivers de cache, file d'attente, planificateur et session (avec vérifications Redis), l'écriture dans le stockage et le lien symbolique storage:link, ainsi que la sécurité (mode debug adapté à l'environnement, .env dans .gitignore, audit des dépendances). Doctor classe l'application en mode local ou production — staging est reconnu, les environnements inconnus sont traités comme production — : une file sync passe en local mais avertit en production.
Installation via composer require laravel/doctor --dev, puis php artisan doctor. Les problèmes réparables demandent une confirmation interactive ; php artisan doctor --fix applique les corrections automatiquement : créer un .env manquant, générer APP_KEY, désactiver le debug en production, ajouter .env au .gitignore, créer le lien de stockage et réparer les permissions. Les diagnostics se filtrent avec --only/--except par groupe, classe ou joker de paquet (ex. --except=laravel/*), ou de façon persistante via php artisan vendor:publish --tag=doctor-config.
Les paquets enregistrent des diagnostics via la façade Doctor dans leur service provider ; php artisan make:diagnostic génère un contrôle personnalisé étendant Laravel\Doctor\Diagnostic avec une méthode check(). La méthode messages() contient résumés, textes de remédiation, liens de documentation et invites de confirmation. Implémenter Laravel\Doctor\Contracts\Fixable et marquer les échecs avec ->fixable() permet des réparations, éventuellement limitées à un EnvironmentMode.
Outre la sortie CLI, --format=json produit des rapports lisibles par machine et --format=github des annotations GitHub Actions ; les deux refusent --fix. Un quatrième format suit la convention Laravel PAO — une ligne JSON avec les compteurs en tête — et s'active automatiquement quand Laravel Agent Detector détecte Claude Code, Cursor ou des agents similaires, faisant d'artisan doctor un contrôle final naturel pour les agents de codage IA. Doctor::run() fonctionne aussi par programmation avec only(), except(), bail() et fixUsing().
Laravel Doctor exige PHP 8.3 et Laravel 12 ou 13, est sous licence MIT et documenté sur le dépôt GitHub laravel/doctor.
Commentaires
Pas encore de commentaire — écris le premier.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
En attente de ton clic …
·