The Daily Commit · Édition de rubrique La une PHP AI Dev EN DE FR ES

The Php Times

Lectures — Écosystème

Laravel 13.25 : Contrôle global des files d'attente et nouvelle interface terminal


Laravel 13.25 introduit des fonctions pause/reprise globales pour toutes les files d'attente via queue:pause --all et Queue::pauseAll().

LARAVEL NEWS, 12 août 2026 sélectionné par Heiko

La commande artisan dev utilise désormais @laravel/multiplex pour une interface terminal à onglets avec onglets par processus, recherche et redémarrage automatique. Les images peuvent être retournées directement depuis les routes en tant qu'objets Responsable, et l'observabilité des files s'améliore grâce aux événements UniqueJobSkipped et au suivi des délais d'expiration.

Laravel 13.25.0 sortie le 11 août 2026 apporte trois domaines de fonctionnalités majeures plus de nombreuses corrections.

Gestion des Files : Le framework exigeait auparavant de mettre en pause les files individuelles par nom — un processus fastidieux lors du déploiement avec plusieurs workers sur des files nommées. La version 13.25 ajoute les commandes queue:pause --all et queue:resume --all, ainsi que les méthodes de facade correspondantes Queue::pauseAll() et Queue::resumeAll(). Celles-ci implémentent une seule clé de cache globale que les workers vérifient aux côtés des flags par file. Les deux niveaux de pause existent indépendamment : resumeAll() efface uniquement le flag global, laissant les files mises en pause individuellement intactes. Deux nouveaux événements, QueuesPaused et QueuesResumed, se déclenchent aux côtés des équivalents existants par file.

Interface Terminal : La commande artisan dev utilisait auparavant concurrently, entrelançant toutes les sorties de processus dans un seul flux à défilement, ce qui rendait difficile de localiser les journaux pertinents. Elle s'exécute désormais via @laravel/multiplex, offrant trois modes : tabs (défaut, un processus par onglet avec recherche et redémarrage par processus), stream (entrelacé mais défilable et recherchable) et inline (sortie simple pour environnements non-TTY). Les modes sont sélectionnables par exécution (php artisan dev --stream) ou configurés à l'échelle du projet via DevCommands dans un fournisseur de services. Windows revient à concurrently ; multiplex nécessite macOS ou Linux avec Node v22.13+. Les journaux mis en mémoire tampon s'impriment dans le terminal principal à la sortie, prévenant la perte de données.

API Image : La classe Image implémente désormais Responsable, permettant aux routes de retourner directement des instances Image. Le framework gère automatiquement toResponse(), renvoyant un 200 avec les octets traités et un Content-Type correspondant au format de sortie. Deux additions l'accompagnent : Image::fromStream() lit les données d'image en lazy depuis une ressource de flux (par ex. S3), et toFormat() est désormais public, acceptant une chaîne de format fournie par l'utilisateur et levant ImageException sur les formats non supportés.

Observabilité des Files : Le nouvel événement UniqueJobSkipped se déclenche quand un job avec verrou ShouldBeUnique ne peut être acquis, remplaçant le comportement silencieux précédent. JobTimedOut inclut désormais une propriété $timeout contenant les secondes dépassées, distinguant les délais au niveau du job de ceux du worker. Les notifications honorent fail-on-timeout via une propriété $failOnTimeout ou un attribut #[FailOnTimeout], clarifiant si un délai a empêché la livraison par un tiers. QueueFake assigne désormais aussi des UUID aux jobs contrefaits, correspondant au comportement du driver réel.

Autres Améliorations : La méthode withoutCookies() accepte un tableau de noms ou d'instances de cookies à expirer. L'helper de schéma foreignUlidFor() crée explicitement des colonnes de clé étrangère ULID. Request::all() préfère désormais l'entrée aux fichiers quand les deux partagent un nom, inversant l'ordre array_replace_recursive() précédent. De nombreuses corrections traitent l'isolation de la configuration globale du client Http, la suppression de modèles dans les événements broadcast en queue, les réponses de refus Gate::forUser(), les cas limites de remplacement de chaîne, la gestion des enums de file mail, les race conditions du mode maintenance en cache, les fuites de pile de build du conteneur, les erreurs de type de cache, les rapports de dimension HEIC, le retournement de LazyCollection, les callbacks de retry HTTP asynchrones, la conversion de fuseau horaire de liste de planification et les annotations de type sur plusieurs méthodes.

Lire la source originale (en anglais) ↗

Évaluer cet article : 0

Tribune des lecteurs

Pas encore de contributions — lance le débat.

← Écosystème — Page B1

"All the Code That's Fit to Ship" · The Daily Commit · Édition écran · Mentions légales · Politique de confidentialité