Laravel 12 en 2026 : nouvelles fonctionnalités, Starter Kits et questions d'entretien
Découvrez les nouveautés de Laravel 12 en 2026 : Starter Kits redessinés avec React 19 et WorkOS AuthKit, guide de migration depuis Laravel 11, et questions d'entretien technique essentielles.

Les nouveautés de Laravel 12 reposent sur une refonte complète des Starter Kits du framework et un nombre volontairement réduit de changements majeurs. Publié le 24 février 2025, cette version remplace Breeze et Jetstream par un système de scaffolding moderne, construit sur React 19, Vue 3, Svelte 5 et Livewire 4. La philosophie de cette version privilégie la stabilité : la plupart des applications Laravel 11 se mettent à jour sans modifier une seule ligne de code.
Laravel 12 est une version de maintenance. La mise à jour depuis Laravel 11 ne nécessite aucune modification du code applicatif dans la majorité des projets. L'équipe a préféré livrer des améliorations de confort tout au long du cycle 11.x plutôt que d'accumuler des ruptures de compatibilité.
Les Starter Kits redessinés remplacent Breeze et Jetstream
Le changement le plus visible de Laravel 12 est le remplacement de Breeze et Jetstream par quatre Starter Kits dédiés. Contrairement aux anciens packages qui s'installaient dans un projet existant, ces kits génèrent un projet entièrement neuf avec tout le code visible et modifiable dès le départ.
Chaque kit intègre l'authentification, l'inscription, la réinitialisation du mot de passe, la vérification d'email et la gestion du profil utilisateur.
| Starter Kit | Stack | Bibliothèque UI | |------------|-------|------------------| | React | Inertia 2, React 19, TypeScript | shadcn/ui | | Vue | Inertia 2, Vue 3, TypeScript | shadcn-vue | | Svelte | Inertia 2, Svelte 5, TypeScript | shadcn-svelte | | Livewire | Livewire 4, Laravel Volt | Flux UI |
Les quatre kits incluent Tailwind CSS 4, le support des modes sombre/clair/système, ainsi que plusieurs variantes de mise en page pour les pages d'authentification (simple, carte et split).
# Installer un nouveau projet Laravel avec le starter kit React
laravel new my-app
# Ou spécifier un starter kit communautaire
laravel new my-app --using=vendor/custom-starter-kitLaravel 12 introduit également la possibilité pour chacun de créer et publier des Starter Kits personnalisés, enregistrés via le flag --using. Cette ouverture répond aux demandes de la communauté pour des kits Blade uniquement, des configurations API-only ou du scaffolding métier spécifique.
Intégration WorkOS AuthKit pour l'authentification entreprise
Chaque Starter Kit propose une variante WorkOS AuthKit, ajoutant des fonctionnalités d'authentification de niveau entreprise sans implémentation personnalisée :
- Authentification sociale (Google, GitHub, Microsoft, et plus)
- Passkeys pour la connexion sans mot de passe via biométrie
- Single Sign-On (SSO) avec les fournisseurs SAML et OIDC
Le tier gratuit de WorkOS supporte jusqu'à un million d'utilisateurs actifs mensuels, ce qui le rend viable pour des projets de toute taille. La configuration nécessite de renseigner les clés API WorkOS dans le fichier .env et de sélectionner la variante WorkOS lors de l'installation du kit.
'workos' => [
'client_id' => env('WORKOS_CLIENT_ID'),
'api_key' => env('WORKOS_API_KEY'),
'redirect_url' => env('WORKOS_REDIRECT_URL'),
],Cette intégration supprime le besoin de packages comme Socialite pour les flux de connexion sociale basiques, bien que Socialite reste disponible pour les implémentations OAuth personnalisées.
Mises à jour des dépendances et prérequis PHP
Laravel 12 requiert PHP 8.2 à 8.5 et impose Carbon 3 pour toutes les opérations de date et d'heure. Le support de Carbon 2 a été complètement abandonné, apportant un typage plus strict et de meilleures garanties d'immuabilité.
Les autres mises à jour de dépendances incluent les composants Symfony 7, alignant Laravel avec les dernières versions stables de l'écosystème PHP.
// Carbon 3 impose un typage plus strict
use Carbon\Carbon;
$now = Carbon::now(); // Retourne CarbonImmutable par défaut en mode strict
$future = $now->addDays(30);
// $now reste inchangé — immuabilité garantieLaravel 12 reçoit des corrections de bugs jusqu'en août 2026 et des correctifs de sécurité jusqu'en février 2027. Laravel 13, publié le 17 mars 2026, est désormais la dernière version majeure — mais la mise à jour de 12 vers 13 n'implique aucun changement majeur.
Améliorations notables dans les versions de patch
Si la version 12.0 initiale se concentrait sur les Starter Kits, les patches ultérieurs jusqu'à 12.12.2 (la dernière version 12.x) ont introduit des ajouts utiles :
Helpers pour les tableaux et les collections
use Illuminate\Support\Arr;
// Filtrer par valeurs au lieu des clés (ajouté en 12.46.0)
$filtered = Arr::onlyValues(['admin', 'editor', 'viewer'], ['admin', 'editor']);
// Résultat : ['admin', 'editor']
$excluded = Arr::exceptValues(['admin', 'editor', 'viewer'], ['viewer']);
// Résultat : ['admin', 'editor']
// Vérifier si une collection contient plusieurs éléments
$users = collect([/* ... */]);
if ($users->containsManyItems()) {
// Traiter l'opération en lot
}Améliorations des Gates et de l'autorisation
use Illuminate\Support\Facades\Gate;
// Support des UnitEnum dans Gate::has() (ajouté en 12.45.2)
enum Permission {
case ViewDashboard;
case ManageUsers;
}
if (Gate::has(Permission::ViewDashboard)) {
// La capacité est définie — plus sûr que les vérifications par chaîne
}Corrections du Schema et du Container
Les méthodes Schema::getTables(), Schema::getViews() et Schema::getTypes() retournent désormais les résultats de tous les schémas par défaut. Le conteneur d'injection de dépendances respecte les valeurs par défaut des propriétés de classe lors de la résolution d'instances, et mergeIfMissing() supporte la notation pointée imbriquée pour un traitement plus propre des requêtes.
Prêt à réussir tes entretiens Laravel ?
Entraîne-toi avec nos simulateurs interactifs, fiches express et tests techniques.
Guide de migration : Laravel 11 vers Laravel 12
Le chemin de migration de Laravel 11 vers 12 est volontairement simple. La plupart des applications ne nécessitent qu'une mise à jour des versions de dépendances.
Étape 1 — Mettre à jour composer.json :
{
"require": {
"php": "^8.2",
"laravel/framework": "^12.0",
"nesbot/carbon": "^3.0"
}
}Étape 2 — Lancer la mise à jour Composer :
composer updateÉtape 3 — Vérifier les cas particuliers. Les cinq points les plus susceptibles de nécessiter un ajustement :
Concurrency::runavec des tableaux associatifs retourne désormais des résultats indexés par clé- Le disque local pointe par défaut vers
storage/app/privateau lieu destorage/app - Les appels Carbon 2 doivent être mis à jour vers l'API Carbon 3
- Les méthodes Schema retournent désormais des résultats inter-schémas
- Les arguments nommés dans les appels aux méthodes Laravel peuvent casser si les noms de paramètres ont changé
Pour les applications utilisant Eloquent, le middleware ou les systèmes de queues, la migration se termine généralement en quelques minutes.
Questions d'entretien essentielles sur Laravel 12 pour 2026
Les entretiens techniques pour les postes Laravel en 2026 couvrent à la fois les fondamentaux du framework et la connaissance des changements récents. Les questions ci-dessous reflètent ce que les équipes de recrutement demandent activement, classées par niveau d'expérience.
Questions niveau junior
Qu'est-ce qui a changé dans les Starter Kits de Laravel 12 par rapport à Breeze ?
Breeze et Jetstream nécessitaient une installation dans un projet existant et ajoutaient leurs propres dépendances. Les Starter Kits de Laravel 12 génèrent un projet complet avec tout le code d'authentification directement dans l'application — sans logique cachée dans un package. Les kits utilisent des stacks frontend modernes (React 19, Vue 3, Svelte 5 ou Livewire 4) avec TypeScript et les composants shadcn/ui par défaut.
Expliquer le Service Container et l'injection de dépendances dans Laravel.
Le service container est l'outil de Laravel pour gérer les dépendances des classes. Lorsqu'une classe déclare des paramètres de constructeur typés, le container résout et injecte automatiquement les instances appropriées. Dans Laravel 12, le container respecte désormais les valeurs par défaut des propriétés lors de la résolution — un changement subtil mais important.
// Le container résout les dépendances automatiquement
class OrderService
{
public function __construct(
private PaymentGateway $gateway, // Résolu automatiquement
private int $retryLimit = 3 // Valeur par défaut respectée dans Laravel 12
) {}
}Questions niveau intermédiaire
Comment fonctionne le middleware dans Laravel et qu'est-ce qui a changé récemment ?
Le middleware filtre les requêtes HTTP avant qu'elles n'atteignent le contrôleur. Laravel 12 a corrigé un bug de récursion infinie où un groupe de middleware se référençant lui-même causait un débordement de pile. Le middleware peut gérer l'authentification, le CORS, la limitation de débit et la journalisation des requêtes. Un middleware personnalisé se crée avec php artisan make:middleware.
Décrire l'architecture du système de queues.
Les queues Laravel diffèrent les tâches chronophages (envoi d'emails, génération de rapports, traitement d'images) vers des workers en arrière-plan. Les jobs sont dispatché vers des drivers comme Redis, Amazon SQS ou la base de données. Laravel 12 a rétro-porté le support des queues cloud depuis la version 13.x, élargissant les options de déploiement pour les environnements serverless.
// Dispatcher un job dans la queue
use App\Jobs\ProcessInvoice;
ProcessInvoice::dispatch($order)
->onQueue('invoices')
->delay(now()->addMinutes(5));Questions niveau senior
Comparer le Repository Pattern avec l'utilisation directe d'Eloquent dans une application Laravel.
L'utilisation directe d'Eloquent dans les contrôleurs crée un couplage fort entre la couche HTTP et la base de données. Le Repository Pattern introduit une couche d'abstraction : une interface de repository définit les méthodes d'accès aux données, et une classe concrète les implémente avec Eloquent. Cette séparation améliore la testabilité (les repositories peuvent être mockés), supporte le changement de source de données et impose des limites de responsabilité unique.
Le compromis est la complexité ajoutée. Les petites applications bénéficient rarement des repositories. Les applications de grande taille avec de multiples sources de données, des requêtes complexes ou des exigences strictes de tests gagnent une clarté architecturale significative.
Comment préparer une application Laravel 12 pour la migration vers Laravel 13 ?
Laravel 13 a été livré sans aucun changement majeur par rapport à la version 12, rendant la migration directe. Les étapes clés de préparation : vérifier la compatibilité PHP 8.3+ (la version 13 abandonne PHP 8.2), auditer l'utilisation de patterns Carbon 2 dépréciés, et tester les service providers personnalisés contre le nouveau système de configuration par attributs. Les équipes intéressées par le SDK IA de Laravel 13 devraient évaluer leurs besoins en recherche vectorielle et RAG en amont, car le support natif de pgvector ne fonctionne qu'avec PostgreSQL.
Les recruteurs en 2026 posent de plus en plus de questions sur le chemin de migration entre les versions de Laravel. Démontrer une connaissance de la chaîne de migration 11 → 12 → 13 — et de la philosophie de zéro changement majeur — signale une expérience pratique plutôt qu'une connaissance théorique.
Laravel 12 vs Laravel 13 : faut-il migrer maintenant ?
| Fonctionnalité | Laravel 12 | Laravel 13 |
|----------------|-----------|------------|
| Version PHP requise | 8.2 - 8.5 | 8.3 - 8.5 |
| Starter Kits | React/Vue/Svelte/Livewire | Idem + Multi-Tenancy équipe |
| SDK IA | Beta (laravel/ai) | Stable, prêt pour la production |
| Recherche vectorielle | Non disponible | Support natif pgvector |
| Passkeys | Via WorkOS uniquement | Natif dans Fortify |
| Changements majeurs depuis 11 | Minimes | Zéro depuis 12 |
| Corrections de bugs jusqu'à | Août 2026 | T3 2027 |
Pour les équipes n'utilisant ni les fonctionnalités IA ni les passkeys, Laravel 12 reste pleinement supporté jusqu'en août 2026. La migration vers la version 13 peut être effectuée dès que la compatibilité PHP 8.3 est confirmée sur l'ensemble des dépendances.
Conclusion
- Laravel 12 remplace Breeze et Jetstream par quatre Starter Kits modernes construits sur React 19, Vue 3, Svelte 5 et Livewire 4 — tout le code réside directement dans l'application
- L'intégration WorkOS AuthKit ajoute la connexion sociale, les passkeys et le SSO sans implémentation personnalisée — gratuit jusqu'à un million d'utilisateurs mensuels
- La migration depuis Laravel 11 ne nécessite aucune modification de code dans la majorité des applications — Carbon 3, Symfony 7 et PHP 8.2+ sont les principaux changements de dépendances
- Les versions de patch jusqu'à 12.12.2 ont ajouté
Arr::onlyValues(),Arr::exceptValues(),containsManyItems()et le support des UnitEnum dans Gate - La préparation aux entretiens 2026 doit couvrir les différences des Starter Kits, les changements du service container et le chemin de migration Laravel 12 vers 13
- Laravel 13 (mars 2026) propose un SDK IA natif, la recherche vectorielle et les passkeys — mais Laravel 12 reçoit des correctifs de sécurité jusqu'en février 2027
Passe à la pratique !
Teste tes connaissances avec nos simulateurs d'entretien et tests techniques.
Tags
Partager
Articles similaires

Questions d'entretien Laravel et PHP : Top 25 en 2026
Les 25 questions d'entretien Laravel et PHP les plus posées. Eloquent ORM, middleware, artisan, queues, tests et architecture avec réponses détaillées et exemples de code.

Laravel Middleware en profondeur : Authentification, Rate Limiting et Middleware personnalisé
Exploration complète des middleware Laravel avec des exemples pratiques : gardes d'authentification, limitation de débit avec throttle, création de middleware personnalisé et patterns avancés pour les applications en production.

Eloquent ORM : Patterns et optimisations pour Laravel
Maîtrisez Eloquent ORM avec les patterns avancés et techniques d'optimisation. Eager loading, query scopes, accessors, mutators et performance pour applications Laravel.