Récemment, la team Laravel a publié la version 12.40.0, qui n’est pas un "big bang", mais plutôt un lot de petits ajouts pratiques, bien sentis; des choses qu’un développeur apprécie sur le court et le long terme. Dans cet article, je décrypte ces nouveautés, je les replace dans mon quotidien de dev, et je dis quand (et pourquoi) je migrerais volontiers un projet vers cette version.
Ce qui change : les ajouts les plus utiles
Des helpers temporels plus expressifs
Un des plus gros plus de cette version : de nouveaux helpers relatifs au temps et des méthodes améliorées sur la classe date/heure (via [Carbon]) pour manipuler les durées, intervalles, etc. Par exemple :
use Illuminate\Support\Carbon;
use function Illuminate\Support\{seconds, minutes, hours, days, years};
$expiry = now()->plus(weeks: 1);
Cache::put('user_token', $token, minutes(15));Ces helpers (minutes(15), hours(2), days(30), etc.) renvoient une instance de CarbonInterval, ce qui rend le code lisible, intuitif, rapide à écrire.
Pour moi, c’est un vrai confort. Quand tu manipules des durées (cache, délais, expiration, jobs, etc.), ce type de syntaxe rend le code plus clair ; et surtout diminue le risque d’erreurs ("5 60 60" vs "hours(5)", c’est pas la même lisibilité).
Planification de tâches plus fine : exécution à des jours précis
Si tu utilises le scheduler de Laravel (les tâches planifiées via schedule()), tu peux désormais définir l’exécution sur des jours spécifiques du mois via la méthode daysOfMonth(). Par exemple :
$schedule->command('generate-reports')
->daysOfMonth(1, 15, 30);Ou même en passant un tableau : pratique si tu veux exécuter une tâche le 1er, 15 et dernier jour du mois.
En pratique : plus besoin de bricoler avec des conditions "if day == 1 or …", tu utilises directement la méthode. Pour des jobs réguliers ou des rapports mensuels, ça simplifie grandement le code de planification.
Validation d’encodage des fichiers : utile pour les uploads
Laravel 12.40 ajoute une règle de validation d'encodage, utile quand tu acceptes des fichiers uploadés (CSV, JSON, etc.) et que tu veux t’assurer qu’ils respectent un certain encodage. Exemple :
Validator::validate($input, [
'file' => [
'required',
File::types(['csv'])->encoding('utf-8'),
],
]);Ce genre de détail peut paraître mineur, mais c’est un vrai plus quand tu vises la robustesse, la fiabilité et une bonne UX ; particulièrement si tu vises des utilisateurs internationaux ou des fichiers encodés de façon variée.
Pause / reprise des queues : plus de contrôle sur l’exécution asynchrone
Si ton application utilise des queues (jobs, tâches en arrière-plan, dispatch, etc.), la 12.40 apporte la possibilité de mettre en pause une queue, puis de la reprendre. Commandes en ligne inclues :
php artisan queue:pause database:default
php artisan queue:continue database:defaultPratique si tu as besoin de maintenance, de modifications sensibles, ou de gérer des jobs "à froid".
Concrètement, ça peut éviter des traitements non désirés ou gérer des périodes d’indisponibilité sans arrêter tout le système.
Corrections, compatibilité et maintenance continue
La 12.40 corrige aussi des détails plus techniques : ajustements pour compatibilité avec PHP 8.5, amélioration du type return de certaines méthodes (Str::replace()), correctifs divers dans le support de collections/arrays, etc.
Pour un projet existant, cela signifie moins de bricolages, plus de stabilité, et souvent… moins de frustration sur les bord cases.
Sponsorisé par Le Scribouillard
Besoin de contenu optimisé SEO ?
Utilisez la meilleure plateforme française de création de contenu assistée par IA ! Et générez des articles pour moins de 1€ !
Pour qui cette version a du sens et pourquoi je l’adopterais
Quand je repense à mes projets — qu’ils soient des petits sites, des microservices, des APIs, voire des SaaS — plusieurs cas me viennent immédiatement :
Projets qui manipulent le temps, les délais, expiration, cache, jobs : les nouveaux helpers rendent le code beaucoup plus propre et lisible.
Applications avec des tâches planifiées (scheduler) : la possibilité de définir des jours précis du mois simplifie considérablement le code.
Systèmes de traitement de fichiers / uploads : l’encodage imposé des fichiers via validation est un petit plus sécurité/fiabilité.
Projets avec queues et jobs : la pause/reprise des queues donne plus de contrôle, ce qui fait sens en production, surtout pour des apps critiques.
Code où la lisibilité, le maintien, la clarté comptent : une version polyvalente, élégante, sans rework massif.
La 12.40 de Laravel, ce n’est pas un feu d’artifice. C’est un bon vieux travail d’orfèvre : améliorer le quotidien, lisser les aspérités, rendre le code plus propre et agréable à écrire.
Si tu es développeur curieux, exigeant, pragmatique : cette version mérite clairement ton attention. Tu n’as rien à perdre, et pas mal à gagner.
Pour ma part, je l’adopte dès que possible.