Sortie le 13 octobre, la version 13.36.0 du framework Laravel réunit une cinquantaine de
modifications autour des files d’attente, du stockage et d’Eloquent. Aucune rupture de
compatibilité n’est annoncée, mais plusieurs correctifs touchent des comportements observés en
production depuis des mois, notamment sur les workers de queue qui restaient bloqués sans code
de sortie exploitable par les orchestrateurs de process.
Des workers de queue plus prévisibles
Le correctif le plus attendu concerne le code de sortie des workers arrivés au bout de leur
délai d’exécution : il était auparavant absorbé silencieusement, ce qui empêchait Supervisor ou
systemd de détecter un worker figé et de le relancer. Les workers peuvent désormais aussi vider
leurs connexions persistantes entre deux jobs plutôt que de les garder ouvertes jusqu’à
l’arrêt du process, ce qui limite les fuites de connexions sur les files à fort débit.
Stockage S3 et fournisseurs d’identifiants nommés
Le pilote S3 accepte désormais plusieurs fournisseurs d’identifiants nommés dans un même
projet, utile pour les applications qui écrivent vers plusieurs comptes ou régions, ainsi que
les disques IAM pour les environnements Cloud où la rotation des clés est gérée en dehors du
code. Cette évolution rejoint une tendance de fond du framework : déléguer de plus en plus la
gestion des secrets à l’infrastructure plutôt qu’au fichier .env, un sujet déjà
documenté lors du choix d’une
infrastructure d’auto-hébergement.
Eloquent : des correctifs ciblés mais nombreux
Le correctif le plus structurant touche la résolution des alias de morph map
dans constrain(), morphWith() et loadMorph() : les alias
déclarés n’étaient pas toujours respectés, forçant certains projets à utiliser le nom de classe
complet en contournement. touch() fonctionne maintenant correctement sur les
relations HasOneOrManyThrough, et Schema::getColumn() devient
insensible à la casse, ce qui évite des faux négatifs sur certains moteurs de base de données.
| Domaine | Avant 13.36.0 | Depuis 13.36.0 |
|---|---|---|
| Workers figés | Code de sortie absorbé, non détecté | Code de sortie exploitable par l’orchestrateur |
| Connexions persistantes | Conservées jusqu’à l’arrêt du worker | Vidées entre deux jobs |
| Identifiants S3 | Un seul fournisseur par défaut | Fournisseurs nommés multiples + disques IAM |
| Cluster Redis | Client phpredis figé si aucun nœud joignable | Client reconstruit automatiquement |
| Tests (Prompts) | Fuite mémoire sur les suites longues | Fuite corrigée |
Redis, notifications et une fuite mémoire dans les tests
Côté Redis, le client phpredis est désormais reconstruit automatiquement quand aucun nœud du
cluster n’est joignable, au lieu de rester dans un état figé. Les notifications corrigent un
défaut où Notification::locale() pouvait s’appliquer à une notification suivante
sans rapport. Enfin, une fuite mémoire provoquée par le composant Prompts affectait les suites
de tests longues, un problème que certaines équipes contournaient en segmentant leurs pipelines
CI — un palliatif qui n’est plus nécessaire.
// config/queue.php — nouveauté 13.36 : connexion par défaut en tâche de fond
'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => env('REDIS_QUEUE', 'default'),
'retry_after' => 90,
'block_for' => null,
'after_commit' => false,
],
],
Le code de sortie des workers de queue, longtemps invisible pour les outils de supervision, devient enfin exploitable.
Les correctifs Eloquent sur les alias de morph map méritent une vérification
manuelle sur les projets qui utilisent enforceMorphMap() : le comportement change,
même s’il se rapproche de ce que la documentation décrivait déjà.
La mise à jour reste mineure au sens strict du versionnage, mais le volume de correctifs — une
cinquantaine de pull requests fusionnées en un mois — illustre un rythme de publication que les
équipes utilisant les outils en ligne de
commande pour automatiser leurs mises à jour ont tout intérêt à suivre de près plutôt que de
laisser s’accumuler.
Ce qu’il faut retenir
Laravel 13.36.0 ne change rien à l’API publique du framework mais referme des angles morts
opérationnels réels : supervision des workers, rotation des identifiants S3 et stabilité du
client Redis en cluster. Les projets exploitant des files d’attente à fort volume ont intérêt à
monter de version rapidement, les autres peuvent attendre la prochaine fenêtre de maintenance
sans urgence.
Sur les missions où je supervise des files d’attente Laravel en production, le code de sortie
absorbé des workers figés était une source d’incidents silencieux depuis des mois : le worker
plantait, Supervisor ne le relançait pas, et seule une alerte de latence permettait de s’en
rendre compte. Ce correctif, à lui seul, justifie la mise à jour. — Simon Janvier
Pour aller plus loin : les notes de version complètes sont disponibles
sur le dépôt GitHub du framework.
