Mai 2026 apporte de grosses mises à jour pratiques : Scale-to-Zero full-stack et Managed Queues pour Laravel Cloud, optimisation des polices, pipelines multi-agents, etc.
Source : Laravel May Product Updates
Laravel Framework
Directive Blade @fonts
La nouvelle directive @fonts gère automatiquement les balises <link rel="preload">, les styles @font-face et les en-têtes HTTP/2 push nécessaires au chargement des web fonts. Elle lit le manifeste de polices généré par le plugin Vite Font et injecte tous les éléments requis en une seule opération.
{{-- Charger toutes les polices --}}
@fonts
{{-- Une famille de polices spécifique uniquement --}}
@fonts(["sans", "mono"])
@fonts permet de ne contrôler que les polices nécessaires page par page, ce qui évite les préchargements inutiles et optimise les performances.
Interruptible Jobs (jobs sensibles aux signaux)
La nouvelle interface Interruptible permet à un job de réagir lorsqu’un worker de queue reçoit SIGTERM pendant un déploiement. Vous pouvez arrêter une boucle, libérer des verrous, sauvegarder l’état, etc. en toute sécurité avant l’arrêt du worker.
use Illuminate\Contracts\Queue\Interruptible;
use Illuminate\Contracts\Queue\ShouldQueue;
class ProcessLargeReport implements ShouldQueue, Interruptible
{
public function handle(): void
{
foreach ($this->getChunks() as $chunk) {
if ($this->shouldInterrupt()) {
$this->saveProgress();
return;
}
$this->processChunk($chunk);
}
}
}
Exceptions JSON par défaut pour les routes API
Les routes API renvoient désormais automatiquement les réponses d’erreur au format JSON. Auparavant, certaines conditions pouvaient produire du HTML pour ces routes ; désormais, les routes définies dans api.php sont garanties de recevoir une réponse JSON.
Store de cache storage
Un nouveau store de cache storage a été ajouté. Il utilise le système de fichiers comme backend de cache tout en tirant parti de la configuration de stockage de Laravel.
// config/cache.php
'stores' => [
'storage' => [
'driver' => 'storage',
'disk' => 'local',
'path' => 'framework/cache',
],
],
Sauvegarde sur disque des grosses charges utiles SQS
Une option a été ajoutée pour sauvegarder les charges utiles SQS sur disque lorsqu’elles sont trop volumineuses (> 256 Ko). C’est utile pour traiter de gros volumes de données via la queue.
Filtre d’environnement pour les commandes planifiées
La commande schedule:list accepte désormais un filtre par environnement.
php artisan schedule:list --environment=production
Option Stop When Empty pour les workers
Une option --stop-when-empty a été ajoutée pour arrêter automatiquement le worker lorsque la queue devient vide. Pratique pour les traitements par lots ou les workers en CI qui doivent se terminer une fois la queue vide.
php artisan queue:work --stop-when-empty
Helper de schéma foreignUuidFor
foreignUuidFor() a été ajouté comme équivalent UUID de foreignIdFor().
Schema::table('posts', function (Blueprint $table) {
$table->foreignUuidFor(User::class)->constrained();
});
Prise en charge des sous-agents IA
Les agents IA Laravel peuvent désormais déléguer à d’autres agents. Si vous renvoyez un agent depuis la méthode tools(), le LLM de l’agent parent l’appelle comme n’importe quel autre outil. Les contextes étant isolés, les historiques de conversation ne se mélangent pas.
class OrchestratorAgent extends Agent
{
public function tools(): array
{
return [
new AnalysisAgent(),
new WritingAgent(),
new SearchTool(),
];
}
}
Inertia 3.x
- Option
mode de router.poll : permet de configurer le mode de fonctionnement du polling
- Support des données dynamiques dans
usePoll : mise à jour dynamique des données pendant le polling
Inertia.once : prise en charge d’événements qui ne se déclenchent qu’une fois
- Slot
rescue de <Deferred> : fallback lorsque les props deferred échouent
PAO (PHP Agentic Output)
PAO est désormais intégré par défaut dans les starter kits. De nouvelles fonctionnalités ont été ajoutées :
- Support de Rector : PAO traite également les sorties JSON de Rector
- Guidance d’agent pour PHPStan : ajout d’indications pour expliquer à l’agent comment corriger les erreurs
- Variable d’environnement
PAO_FORCE : force l’activation du mode PAO
- Support Artisan RECTOR : PAO prend en charge les commandes Artisan
Laravel Cloud, Laravel Forge et Nightwatch
| Produit | Principales mises à jour |
|---|
| Laravel Cloud | Scale-to-Zero full-stack (démarrage en moins de 500 ms, 20× plus rapide), Managed Queues (workers auto-scalés, tableau de bord des jobs échoués), plafonds de dépenses, nouveau plan Starter à 5 $/mois |
| Laravel Forge | MySQL managé 8.4 (sauvegardes automatiques, réplicas en lecture, alertes), PHP 8.5 par défaut, redémarrage automatique d’Horizon lors du changement de variables d’environnement |
| Nightwatch | Le serveur MCP fournit des données de performance : temps d’exécution des routes, durée des requêtes, métriques d’exécution des jobs, etc. |