veilletech.fr
18 sept.

Source · 31 jours de veille

Laravel News

Ce qui a été retenu de cette source, et sur quels thèmes. Chaque fiche est une synthèse originale et renvoie à l'article d'origine.

19fiches
13jours sur 31
42min de lecture
PHP & CMS · Données · Outils & méthodethèmes

Laravel Scalpel cherche les traces d'intrusion

Laravel Scalpel, de Harry Agustiana, scanne le système de fichiers d'une application Laravel déployée pour y trouver des traces d'intrusion : fichiers PHP là où il ne devrait pas y en avoir, code obfusqué, directives serveur modifiées, écarts avec un instantané de référence. Une question différente de celle des analyseurs de code habituels.

18 sept.3 min

LARAVEL

Laravel 13.32 : du temps réel sans WebSocket

Laravel 13.32 ajoute un driver de broadcasting Mercure, qui pousse les messages en Server-Sent Events sur du HTTP ordinaire plutôt qu'en WebSocket. Couplé à FrankenPHP, dont le hub Mercure est intégré, le driver fonctionne sans URL ni secret à configurer : le temps réel cesse d'être un service séparé à déployer.

17 sept.2 min

LARAVEL

PHP 8.6 : application partielle et clamp

PHP 8.6 est en bêta, avec gel des fonctionnalités le 22 septembre 2026 et sortie le 19 novembre. Au programme : l'application partielle de fonctions (RFC v2 adoptée 33 voix contre 0 après un refus en 2021), une fonction clamp(), une classe Time\Duration à la nanoseconde, les propriétés readonly avec valeur par défaut et des DocComments par paramètre. Trois réglages de session passent à des valeurs sûres pour les nouvelles installations.

16 sept.3 min

PHP

Laravel MCP 1.0 : serveurs sans état et PKCE

Laravel MCP 1.0 est la première version stable du paquet officiel pour exposer des serveurs Model Context Protocol depuis une application Laravel. Elle apporte la révision de protocole 2026-07-28 : serveurs sans état, catalogues d'outils cherchables, indications de cache et OAuth avec PKCE obligatoire. La migration depuis 0.9 impose de nouveaux en-têtes sur chaque requête POST, y compris dans les tests.

16 sept.3 min

LARAVEL

Laravel Vet relit Composer avant l'installation

Laravel Vet est un greffon Composer officiel qui affiche le code que composer update s'apprête à écrire dans vendor/, paquet par paquet, et enregistre les paquets approuvés dans un fichier vet.json à committer. Il peut déléguer la lecture à l'agent de code installé localement, qui rend un verdict PASS, FAIL, WARN ou SKIP. Un paquet non approuvé fait sortir la commande en erreur, ce qui casse le build tant que personne n'a regardé.

16 sept.2 min

COMPOSER

Vacuum surveille Postgres depuis Laravel

Vacuum est un paquet Laravel de Rati Rukhadze qui lit les vues de statistiques que PostgreSQL tient déjà (pg_stat_user_tables, pg_stat_activity, pg_stat_statements) et affiche les problèmes détectés avec la requête SQL qui les corrige. Treize règles couvrent le wraparound, le bloat, les tuples morts, les index inutilisés et les requêtes lentes, avec une note sur 100. Deux commandes s'intègrent en CI : vacuum:check fait échouer un build sur constat critique, vacuum:lint signale les clés étrangères non indexées dans les migrations.

15 sept.2 min

POSTGRES

Laravel 13.31 compte toute une file d'un coup

Laravel 13.31.0, sortie le 8 septembre, ajoute Queue::totalSize() pour compter tous les jobs d'une connexion en un appel, un événement JobInterrupted émis quand le worker stoppe un job interruptible, et le support de chaperone() sur les modèles pivots d'une relation BelongsToMany. Côté tests, quatre nouvelles assertions « once » remplacent la vérification de compteurs pour les mails et les notifications.

10 sept.2 min

LARAVEL

Pest génère les entrées de test qu'on oublie

Le paquet Fuzz de Jon Purvis apporte le fuzzing guidé par la couverture dans Pest 5, en s'appuyant sur PHP-Fuzzer de nikic : il déforme des chaînes de départ, observe les chemins parcourus dans le code et conserve celles qui atteignent une branche neuve. Sur l'exemple d'un parseur de limite de débit, il trouve l'entrée « 5/ » qui provoque une DivisionByZeroError. Aucune extension de couverture n'est nécessaire, mais la fonction cible doit être définie hors du test, sans quoi rien n'est instrumenté.

9 sept.3 min

PHP

Des règles métier qui changent avec la date

Laravel Rulebook, de Mathias Onea, modélise les règles métier qui changent dans le temps : chaque règle est une classe PHP qui déclare sa fenêtre de validité (always, from, until, between), et la résolution rend un gagnant unique désigné par priorité, accompagné de la raison de chaque règle — gagnante, perdante ou hors fenêtre. Un snapshot fige la décision en JSON, ce qui permet de justifier après coup un calcul fait sous une politique révolue.

8 sept.2 min

LARAVEL

Laravel ferme ses issues GitHub

Taylor Otwell a désactivé les GitHub Issues sur la plupart des paquets open source de Laravel — les paquets seulement, pas le dépôt principal du framework. La consigne : décrire le bug à un agent de code et ouvrir une pull request, même imparfaite, parce qu'elle documente le problème tout en offrant un point de départ. Symfony expérimente au même moment la démarche exactement inverse, en n'acceptant que des issues.

5 sept.1 min

LARAVEL

Laravel confine Storage::path au disque

Laravel 13.30 confine Storage::path() à la racine du disque : un chemin contenant des segments « .. » lève désormais PathTraversalDetected au lieu de retourner un chemin hors du disque. La version ajoute aussi Collection::chunkBy() et fait dire à queue:work la raison de son arrêt.

3 sept.2 min

LARAVEL

Réécrire du Blade sans expression régulière

Forte parse les templates Blade en un AST interrogeable en XPath et permet de les réécrire par structure plutôt que par expression régulière. Le paquet fortephp/forte (MIT, v1.1.0) vise les codemods reproductibles sur de grandes bases de vues.

3 sept.2 min

PHP

Laravel : les starter kits passent à Vite+

Tous les starter kits Laravel construisent désormais avec Vite+, la chaîne unifiée pilotée par la commande vp. ESLint et Prettier sortent du socle front : quatre scripts npm deviennent vp check, les fichiers de configuration disparaissent et les règles migrent dans vite.config.ts sous les clés lint et fmt.

29 août2 min

LARAVEL

Eloquent : refreshForUpdate pose enfin le verrou

Laravel 13.27 ajoute refreshForUpdate() à Eloquent : la méthode recharge un modèle par sa clé primaire avec un FOR UPDATE et met l'instance à jour sur place. Elle passe par le PDO d'écriture, ce qui évite qu'un réplica de lecture serve la valeur sur laquelle repose le verrou.

29 août1 min

LARAVEL

TypePHP compile le PHP en binaire natif

Swoole publie TypePHP, un compilateur AOT qui traduit le PHP en C++ puis en binaire natif, en extension PHP ou en bibliothèque partagée. Les bancs d'essai du projet annoncent des gains de 6,5× à 10×, mais aucune compatibilité directe avec du code existant n'est revendiquée.

27 août1 min

PHP

Laravel 13.27 : vos données fuitent dans les logs

Laravel 13.27 ajoute une option par connexion qui masque les valeurs liées dans les messages de QueryException — jusqu'ici, une requête en échec écrivait les données insérées en clair dans les logs et dans failed_jobs. La version apporte aussi whereBinary() pour des comparaisons sensibles à la casse.

27 août2 min

LARAVEL

Laravel : 40 événements, un seul traitement

Laravel 13.26 étend l'attribut #[DebounceFor] aux listeners d'événements mis en file. Une rafale d'événements identiques se replie sur un seul appel du handler, avec l'état le plus récent, et debounceId permet une fenêtre par ressource. maxWait évite qu'un flux continu ne repousse le traitement indéfiniment.

22 août3 min

LARAVEL

Laravel AI 0.11 : voir ce que fait l'agent

Laravel AI 0.11 donne à chaque run d'agent un identifiant de corrélation unique qui survit aux bascules de fournisseur, et des événements de cycle de vie autour de chaque aller-retour et de chaque appel d'outil. Le wrapper ToolSearch permet en plus de ne plus envoyer tout le catalogue d'outils à chaque requête.

22 août4 min

LARAVEL

Laravel : migrer son stockage sans coupure

Laravel 13.26 introduit un driver de filesystem read-through qui compose un disque principal et un disque de repli. À la première lecture, le fichier absent du disque principal est servi depuis l'ancien puis recopié. Les fichiers réellement consultés migrent d'eux-mêmes, les fichiers morts restent où ils sont.

19 août2 min

LARAVEL