Laravel 13.32.0 est sorti le 16 septembre 2026. La version étend le broadcasting, les transferts entre disques et le contrôle des queues.

filesystem.php
<?php
Storage::disk('local')->copyToDisk('backup', 'reports/report.csv');
Storage::disk('local')->moveToDisk('backup', 'reports/report.csv');
Storage::disk('local')->copyToDisk('s3', 'reports/report.csv', '2026/report.csv');

Kévin Dunglas a contribué le driver Mercure. Mercure diffuse les événements en temps réel avec des Server-Sent Events, ou SSE. Le driver lit MERCURE_URL, MERCURE_PUBLIC_URL, MERCURE_JWT_SECRET et MERCURE_ENCRYPTION_KEY dans l’environnement. Le hub intégré à FrankenPHP fonctionne sans URL ni secret. Les presence channels et les canaux private-encrypted-* chiffrés de bout en bout sont pris en charge. La PR #549 ajoute le support client dans Laravel Echo. La PR #61474 fournit le driver Laravel, tandis que la PR #61587 l’intègre à l’installateur du broadcasting.

Jack Bayliss a ajouté copyToDisk() et moveToDisk() à FilesystemAdapter. Ces méthodes prennent en charge les transferts entre disques qui demandaient auparavant une séquence manuelle de lecture et d’écriture par flux. copyToDisk() conserve le fichier source, alors que moveToDisk() le supprime. Les méthodes acceptent un disque de destination. copyToDisk() accepte aussi un chemin de destination distinct. La PR #61519 permet de fournir une instance de système de fichiers à la place d’un nom de disque. L’implémentation principale se trouve dans #61511.

Queue::pause(), Queue::resume() et Queue::pauseFor() acceptent désormais des valeurs d’enum. Les exemples utilisent Queues::notifications et Connections::Redis, avec une durée de pause de 60 secondes. Cette évolution rejoint le support déjà disponible pour les enums dans les attributs Queue et Connection des jobs, ainsi que dans des méthodes de manager comme route() et forward(). La modification correspond à la PR #61464.

Le changelog définit la valeur par défaut memoryExceededExitCode de Cloud sur 12.x avec la PR #61432. Il traite les types de retour de withFreshQueryLog() dans #61458 et du callback d’autocomplétion de askWithCompletion() dans #61487. Les enums arrivent dans les méthodes de pause des queues avec #61464. hasIndex() compare les noms d’index en minuscules dans #61506. containsStrict() gère correctement une closure qui correspond à null dans #61507. Les callbacks de violation Eloquent reçoivent l’exception dans #61504. Les variables inutilisées deviennent des arguments nommés dans #61513. SupportBinaryCodecTest est mis à jour dans #61512. Factory::raw() gère une valeur de count égale à zéro dans #61510. SessionHandlerInterface reçoit son implémentation manquante pour PHP 9 dans #61517.

Les autres entrées ajoutent les méthodes de fichiers dans #61511, le driver Mercure dans #61474, les instances de système de fichiers dans #61519 et le chemin d’installation Mercure dans #61587. Str::password() ne produit plus de caractères supplémentaires ni d’erreurs de validation liées dans #61521. Str::camel() traite correctement les premiers caractères multioctets dans #61545. collapseWithKeys() ne plante plus avec des clés chaîne dans la collection externe dans #61539. SessionGuard::userFromRecaller() ne lève plus de TypeError lorsque getAuthPassword() renvoie null dans #61532. Les tests mockés utilisent davantage l’implémentation réelle dans #61563. appendToPriorityList() gère un middleware référencé en première position dans #61567. Les méthodes de collection qui modifient les données reçoivent de meilleurs types de retour dans #61571. CloudManager gagne isManagedQueue dans #61568. L’expiration des entrées de cache Redis indexées par tags est synchronisée lors de touch dans #61574. Les payloads de jobs ne sont décodés qu’une fois dans #61526. sum() reçoit le type de retour correct lorsque sa clé correspond au nom d’une fonction globale dans #61578. Authorizable intègre UnitEnum dans #61589. Le chiffrement des fichiers d’environnement lisibles conserve les valeurs inchangées dans #61503.