Laravel 13.36.0 est sorti le 14 octobre 2026. Cette version ajoute à Illuminate\Validation\Rule un builder pour chaque règle de validation qui n’existait auparavant qu’en syntaxe texte. Les règles concernées comprennent required_with, accepted_if, url, uuid et distinct. L’API permet leur autocomplétion dans les IDE.
use Illuminate\Validation\Rule;
$request->validate([
'phone' => [Rule::requiredWithout('email')],
'website' => ['nullable', Rule::url()->protocols(['https'])],
'device_id' => [Rule::uuid()->version(4)],
'tags.*' => [Rule::distinct()->ignoreCase()],
'password' => ['required', Rule::confirmed()],
]);Les règles sans paramètre, comme Rule::required() et Rule::nullable(), renvoient une chaîne de règle simple. Les builders qui reçoivent des noms de champs ou des valeurs transmettent ces paramètres sous forme de tableau. Une virgule présente dans une valeur n’est donc plus interprétée comme un séparateur. Rule::date() gagne également equals(). La modification vient de @ericmp33, dans la pull request #61833.
Jack Bayliss a ajouté olap() et isVitess() à la connexion MySQL. PlanetScale s’appuie sur Vitess, dont la charge OLTP par défaut limite une requête à 100 000 lignes. DB::olap() active la charge OLAP sur les connexions de lecture et d’écriture pendant un callback, puis rétablit l’état précédent. Sur une base qui n’utilise pas Vitess, seul le callback est exécuté. Le même code peut donc fonctionner avec un serveur MySQL local.
Les workers de queue peuvent définir Worker::$flushStickyConnections = true pour réinitialiser les connexions sticky avant chaque job. Avec ce mécanisme, une écriture dirige les lectures suivantes vers la connexion d’écriture. L’option reste désactivée par défaut, car un job peut dépendre de données écrites par un job précédent.
Kévin Dunglas a modifié la diffusion Mercure. Les événements destinés uniquement à Mercure sont maintenant publiés de façon synchrone par défaut. Ceux qui ciblent aussi une autre connexion restent mis en file. MERCURE_ASYNC=true réactive le mode asynchrone. Dans ce mode, les workers ont besoin de MERCURE_URL. La version corrige aussi les plantages d’Artisan lorsque BROADCAST_CONNECTION=mercure ne fournit pas d’URL ou lorsque FrankenPHP ne dispose pas de mercure_publish().
Les mailables placés en file prennent désormais en charge #[DeleteWhenMissingModels] et #[FailOnTimeout], ainsi que leurs propriétés correspondantes. Si le modèle Order est supprimé avant l’envoi, le job est supprimé et ne produit pas de ModelNotFoundException. Un mailable qui dépasse son délai est marqué comme échoué. Une nouvelle tentative automatique ne peut ainsi pas provoquer un double envoi. Volodya Kurshudyan a fourni ce correctif.
Stephen Rees-Carter a corrigé l’échappement des mails Markdown. Une barre oblique inverse dans une donnée utilisateur pouvait auparavant neutraliser le crochet fermant d’un lien et modifier sa cible. Les barres obliques inverses sont maintenant échappées avec les crochets.
Le reste du changelog couvre les codes de sortie des workers interrompus par un délai, une connexion d’arrière-plan dans la configuration de queue par défaut et les informations de connexion dans queue:work --json. Une fuite mémoire liée à Prompts dans les suites de tests est corrigée. La version ajoute aussi les fournisseurs d’identifiants S3 nommés, les disques Cloud IAM, EncodedParameter et la compatibilité avec phpstan/phpstan:2.3.1. phpredis reconstruit correctement le client lorsqu’aucun nœud du cluster n’est joignable et libère auparavant les sockets persistants.
D’autres correctifs concernent les erreurs SSL EOF de basculement avec PgBouncer, Notification::locale(), les alias de morph map dans constrain(), morphWith() et loadMorph(), les clés numériques des fichiers de traduction JSON, Number::pairs(), retry_after pour les mailers et les retours à la ligne dans les messages eventStream(). Le release modifie aussi Schema::getColumn(), Arr::first(), Context::pop(), le regroupement des notifications de queue, les mises à jour de chemins JSON, les délais de processus, les verrous de listeners uniques, les attributs UniqueFor des broadcasts, les reconnexions récursives, la recherche de bindings contextuels et les casts d’attributs des modèles. Des nettoyages touchent enfin les tests, le cache, les proxies, la console, StyleCI, GitHub Actions et les vues.




Commentaires
Pas encore de commentaire — écris le premier.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
Rien reçu ? Vérifiez le dossier spam — et marquez le message « Non spam » pour qu'il arrive directement la prochaine fois.