Laravel 13 : ce qui casse et ce qui s'améliore

Migration, temps réel sans WebSocket, scan d'intrusion : le point sur les évolutions qui changent la conduite d'un projet Laravel.

Le 28/09/2026, par Matthieu

Passer à Laravel 13 casse moins de choses que prévu, mais les ruptures les plus dangereuses sont silencieuses : cache sérialisé, préfixes de session, middleware CSRF. En parallèle, les versions 13.30 à 13.33 ajoutent du broadcasting sans serveur WebSocket, un contrôle fin de php artisan dev et un cache mémoïsé compatible avec les tags. Voici ce qui mérite votre attention avant la prochaine mise en production.

Qu'est-ce qui casse vraiment lors du passage à Laravel 13 ?

D'après l'analyse publiée sur Dev.to, la migration de Laravel 12 vers Laravel 13 comporte deux changements majeurs (dépendances Composer et middleware CSRF), deux changements d'impact moyen (cache sérialisé et upsert MySQL) et une quinzaine de changements mineurs. Le piège principal : si les préfixes de cache et de session ne sont pas explicitement configurés, il faut les réinitialiser.

C'est typiquement le genre de détail qui ne déclenche aucune erreur en CI et qui vide les paniers ou déconnecte les utilisateurs une heure après le déploiement. L'auteur fournit une checklist et des commandes prêtes à l'emploi dans son guide de migration vers Laravel 13.

Notre méthode sur les montées de version d'applications métier :

  1. Geler les dépendances et lire le diff Composer avant toute commande update.
  2. Vérifier la configuration explicite des préfixes de cache et de session.
  3. Rejouer la suite de tests avec le cache vidé, pas seulement en environnement chaud.
  4. Tester les requêtes upsert sur MySQL avec les mêmes volumes qu'en production.
  5. Prévoir une fenêtre de purge du cache et des sessions au moment du basculement.

Piloter php artisan dev finement depuis Laravel 13.30

Laravel News rapporte que Laravel 13.30 ajoute deux méthodes à la classe DevCommands : withoutVendorCommands() et withoutDefaultCommands(). Elles se combinent avec les options only() et except() pour décider précisément quels processus démarrent avec php artisan dev.

La commande dev:list complète l'ensemble en affichant les processus configurés, avec une sortie JSON exploitable par des outils automatisés. Sur un projet où chaque développeur lance Vite, une queue, un worker Horizon et un serveur de mails, cette granularité évite les scripts maison qui divergent d'un poste à l'autre.

Faire du temps réel sans serveur WebSocket avec Mercure

Laravel 13.32 introduit un driver de broadcasting Mercure, qui repose sur les Server-Sent Events plutôt que sur un serveur WebSocket dédié. Un développeur l'a testé sur Dev.to avec FrankenPHP et son hub intégré, sur des canaux publics, de présence et privés chiffrés. Il documente trois pièges absents de la documentation officielle : le connecteur Mercure manquant dans les releases npm d'Echo, une configuration Caddyfile obsolète pour le hub, et l'incompatibilité du hub intégré avec les workers de queue lancés en CLI.

Critère Mercure Reverb
Transport Server-Sent Events WebSocket
Infrastructure Hub intégré à FrankenPHP Serveur dédié
Cas recommandé Nouvelles applications FrankenPHP, trafic majoritairement serveur vers navigateur Messagerie client-serveur intensive
Points de vigilance Connecteur Echo, Caddyfile, queues en CLI —

Pour un tableau de bord qui pousse des notifications vers le navigateur, Mercure supprime une brique d'infrastructure. Pour un chat ou un éditeur collaboratif, l'auteur de l'article recommande de rester sur Reverb.

Mémoïser les lectures de cache taguées en 13.33

Toujours selon Laravel News, la méthode Cache::memo() accepte désormais les tags depuis Laravel 13.33. Les valeurs taguées sont mémorisées en mémoire pour la durée d'une requête ou d'un job, ce qui supprime les appels répétés au store de cache.

L'exemple mis en avant concerne les permissions utilisateur, un cas où la même clé est lue dix fois dans une seule requête. Les données stables (permissions, paramètres d'application) sont les meilleures candidates ; les données qui changent au cours de la requête ne le sont pas.

Sécuriser la chaîne : Scalpel, Plumb et Fresh

Trois outils répondent à trois moments distincts du cycle de vie d'un projet.

Outil Rôle À retenir
Laravel Scalpel Détection de traces d'intrusion sur le système de fichiers Six scanners (fichiers PHP rogue, code obfusqué, directives serveur altérées), rapports SARIF/GitHub Actions, PHP 8.2+ et Laravel 10 à 13
Plumb Score de sécurité, maintenance et santé d'écosystème des packages 15 vérifications, intégré à la directory de plugins Filament, liaison possible de son compte GitHub
Fresh Skeleton de package Laravel PHPUnit, Larastan, Rector, application workbench, workflows GitHub Actions multi-versions, variante full-stack Vue 3 / Tailwind / Vite

Laravel News précise que Scalpel peut comparer l'état du système de fichiers à une baseline signée et déclencher des événements Laravel pour des alertes personnalisées, tout en recommandant de le coupler à des mesures externes comme des répertoires en lecture seule. Filament Insights indique de son côté que chaque vérification Plumb est accompagnée d'explications pour corriger le problème détecté, ce qui en fait un argument concret au moment de choisir un plugin tiers. Fresh, créé par Mazen Touati, organise le code par domaine plutôt que par type de fichier : une convention utile quand plusieurs développeurs interviennent sur le même package.

Issues GitHub désactivées : l'IA devient la porte d'entrée des contributions

Taylor Otwell a désactivé GitHub Issues sur la plupart des packages open-source Laravel, rapporte Laravel News. Le raisonnement : demander aux contributeurs d'utiliser des agents IA pour décrire le bug et ouvrir directement une pull request, même imparfaite, plutôt qu'une issue à trier. D'autres projets PHP font l'inverse en n'acceptant que des issues et en produisant les correctifs en interne.

Conséquence pratique pour une équipe : signaler un bug sur un package Laravel demande maintenant d'y consacrer du temps de développement, pas seulement un ticket. À budgétiser dans les contrats de maintenance.

Côté IA appliquée au produit, Laravel News a lancé la mini-série « Decide with Jev », qui montre comment construire un filtre de relecture d'articles avec le modèle Jev de TypeSafe : le modèle renvoie une probabilité numérique plutôt qu'un texte, et PHP construit ses règles de décision sur ce score. Un pattern transposable à toute validation automatisée avant intervention humaine.

Trois outils qui font gagner du temps

  • PayZephyr unifie huit fournisseurs de paiement (Paystack, Stripe, PayPal, Flutterwave...) derrière une façade commune, avec basculement automatique entre fournisseurs, protection contre les doubles paiements, abonnements, remboursements et vérification des webhooks.
  • Quick Blade est une extension macOS Quick Look qui prévisualise les fichiers .blade.php sans serveur ni base de données : elle résout les layouts, compile le CSS et injecte des données de remplissage. Installation via Homebrew.
  • Le Laracon Archive, créé par Prince John Santillan, rassemble 626 talks Laracon enregistrés depuis 2013 sur cinq continents, indexables comme une codebase, hébergé sur Laravel Cloud.

Questions fréquentes

Faut-il migrer immédiatement vers Laravel 13 ?

Les nouveautés 13.30 à 13.33 (Mercure, dev:list, cache mémoïsé tagué) ne sont accessibles qu'en Laravel 13. Si votre application est en Laravel 12 et stable, planifiez la migration sur une fenêtre dédiée en suivant la checklist des breaking changes plutôt que de l'improviser entre deux livraisons fonctionnelles.

Mercure remplace-t-il Reverb ?

Non. L'article de Dev.to recommande Mercure pour les nouvelles applications FrankenPHP dont le trafic va majoritairement du serveur vers le navigateur, et Reverb quand les besoins de messagerie client-serveur sont intensifs. Le choix dépend du sens des échanges, pas de la nouveauté du driver.

Comment évaluer un package Laravel tiers avant de l'intégrer ?

Plumb attribue un score de sécurité, de maintenance et de santé d'écosystème à partir de 15 vérifications, consultable directement dans la directory de plugins Filament. Complétez avec la fréquence des commits, la couverture de tests et la présence de workflows CI multi-versions, comme ceux fournis par le skeleton Fresh.

Besoin d'un diagnostic avant une montée de version ou d'une reprise de code existant ? Parlons de votre application Laravel sur mesure à Bordeaux.


Sources


Ces articles pourraient vous intéresser

Laravel IA : intégrer des agents sans perdre le contrôle

Le framework ouvre la porte aux agents autonomes, à condition que la décision finale reste humaine.

Laravel face aux défis de l'IA et de la scalabilité

Découvrez comment l'écosystème Laravel se réinvente pour maîtriser l'asynchrone, les architectures distribuées et l'intégration de l'intelligence artificielle.

31/08/2026

Laravel moderne : sécurité, performance et maintenabilité

Découvrez comment optimiser votre stack Laravel en production en maîtrisant les défis contemporains de performance, sécurité et architecture.

17/08/2026

Laravel 13 : maîtriser les images et les workflows asynchrones

Découvrez comment les versions récentes de Laravel simplifient la manipulation d'images modernes et la gestion des processus métier complexes.