Laravel est le framework PHP le plus adopté pour le développement d’applications Web modernes, grâce à sa syntaxe expressive et son écosystème complet. Cette formation de 4 jours est alignée sur Laravel 13 sorti le 17 mars 2026, qui requiert PHP 8.3, avec mention de Laravel 12 toujours supporté. Vous couvrez l’architecture MVC, le routage avancé, les migrations et l’ORM Eloquent — relations, factories et casts — la validation FormRequest, l’authentification Breeze et l’autorisation par Policy. Vous abordez aussi les services essentiels Mail, Queues, Events, Notifications et Cache, les tests Pest, l’exposition d’une API via Resources + Sanctum, l’outillage qualité Pint, Telescope, Pulse et Octane, et l’écosystème Livewire 3, Inertia et Filament. Un module dédié vous apprend à exploiter un assistant IA pour générer et relire des artefacts Laravel de façon critique.
Public visé
Développeurs, architectes, chefs de projets techniques.
Prérequis
Avoir suivi les formations suivantes, ou en maîtriser les thèmes abordés :
Objectifs pédagogiques
À l’issue de cette formation, vous serez capable de :
- Installer et structurer un projet Laravel 13
- Construire des routes, contrôleurs et vues Blade idiomatiques
- Modéliser des données avec migrations, seeders et l’ORM Eloquent
- Valider des formulaires avec FormRequest et gérer l’authentification via Breeze et l’autorisation par Policies
- Mettre en œuvre les services Laravel — Mail, Queues, Events, Notifications, Cache
- Tester avec Pest, exposer une API avec API Resources et Sanctum
- Situer l’écosystème — Livewire, Inertia, Filament, Octane, Telescope, Pulse
- Utiliser un assistant IA pour générer et relire des artefacts Laravel de façon critique
Programme
Jour 1 - Matin
Fondamentaux Laravel
Présentation et écosystème
- comprendre la philosophie de Laravel et ses conventions
- situer Laravel 13 sorti en mars 2026 — cycle annuel, support 18 mois bug fixes et 24 mois sécurité
- identifier les briques requises — PHP 8.3 minimum et Composer
Travaux pratiques :
- Explorer un projet Laravel existant et identifier ses fichiers clés
Installation et environnement
- préparer la machine de développement
- créer un projet avec Laravel Installer
- exploiter l’environnement local Laravel Herd
- démarrer le serveur de développement avec
php artisan serve
Travaux pratiques :
- Créer un nouveau projet Laravel 13, le démarrer en local et observer la structure
Structure d’un projet et cycle de vie d’une requête
- comprendre l’arborescence d’un projet Laravel
- suivre le cycle de vie d’une requête HTTP
- identifier le rôle du Service Container et des Service Providers
- positionner les façades comme alias statiques
Travaux pratiques :
- Tracer une requête de bout en bout dans un projet vide et identifier chaque étape
Routage de base
- déclarer une route et associer une méthode HTTP
- consommer des paramètres simples et optionnels
- retourner une réponse rapide
Travaux pratiques :
- Écrire un mini-routeur de pages statiques et une page paramétrée par un slug
Jour 1 - Après-midi
Vues et contrôleurs
Contrôleurs
- créer un contrôleur via Artisan
- distinguer contrôleur invocable et contrôleur de ressource
- construire un contrôleur de ressource REST complet
- injecter des dépendances par constructeur ou méthode
Travaux pratiques :
- Implémenter un contrôleur de ressource pour des articles de blog avec ses 7 actions
Blade — syntaxe et structures
- afficher des données et maîtriser l’échappement
- itérer et conditionner avec les directives Blade
- gérer les états utilisateur et la session
- savoir quand utiliser du HTML brut et ses risques XSS
Travaux pratiques :
- Afficher une liste d’articles depuis le contrôleur précédent dans une vue Blade
Templates et héritage
- définir un layout principal
- réutiliser des fragments par inclusion
- composer avec les composants Blade et leurs slots
Travaux pratiques :
- Factoriser une mise en page commune avec un layout et un composant
cardréutilisable
Réponses
- retourner une vue ou une réponse JSON
- rediriger avec messages flash
- renvoyer un fichier en téléchargement direct ou en streaming
Travaux pratiques :
- Faire varier la réponse d’un même endpoint selon le format demandé HTML ou JSON
Jour 2 - Matin
Routage avancé et middlewares
Routes avancées
- nommer les routes pour faciliter la génération d’URL
- regrouper les routes par préfixe, middleware ou namespace
- contraindre les paramètres avec des règles de typage
- générer des URL nommées et accéder à l’URL courante
Travaux pratiques :
- Organiser les routes d’une mini-application en groupes nommés avec contraintes sur les paramètres
Middlewares
- comprendre le rôle d’un middleware dans le pipeline de requête
- créer un middleware via Artisan
- attacher un middleware globalement ou à une route
- exploiter les middlewares natifs Laravel
Travaux pratiques :
- Créer un middleware qui logue le temps de traitement de chaque requête et l’attacher à un groupe
Service Container et Service Providers
- comprendre l’injection de dépendances par résolution automatique
- déclarer un binding simple ou en singleton
- distinguer phase
registeret phasebootd’un Service Provider
Travaux pratiques :
- Créer un service applicatif simple, l’enregistrer via un Provider et l’injecter dans un contrôleur
Jour 2 - Après-midi
Données — base
Configuration de la base
- choisir un SGBD parmi ceux supportés, SQLite étant celui par défaut sous Laravel 13
- configurer la connexion via
.env - gérer les connexions multiples
Travaux pratiques :
- Configurer le projet pour SQLite en local puis basculer sur PostgreSQL
Migrations
- créer une migration via Artisan
- définir un schéma de table avec colonnes, contraintes et index
- gérer la rétroversion d’une migration
- exécuter, annuler ou réinitialiser les migrations
Travaux pratiques :
- Modéliser les tables
users,posts,commentsavec leurs migrations et relations
Seeders et factories
- alimenter la base avec des données de démo
- générer des données réalistes avec Faker et les factories Eloquent
- enchaîner migration et seeding
Travaux pratiques :
- Créer un seeder qui peuple la base avec des utilisateurs, articles et commentaires factices
Query Builder
- enchaîner des conditions de filtrage
- ordonner, limiter et paginer un résultat
- joindre des tables et agréger des données
- expérimenter une requête en direct avec Tinker
Travaux pratiques :
- Écrire un ensemble de requêtes Query Builder pour produire un rapport — top 10 articles et répartition par auteur
Jour 3 - Matin
Eloquent ORM
Modèles Eloquent
- créer un modèle Eloquent et générer ses artefacts liés en une commande Artisan
- comprendre les conventions de nommage et de timestamps
- protéger les attributs contre le mass assignment
Travaux pratiques :
- Créer les modèles
PostetCommentavec leurs migrations, factories et conventions
Casts et attributs
- typer automatiquement les colonnes avec les casts, notamment enum
- définir des accessors et mutators modernes via
Attribute::make() - exploiter les attributs virtuels calculés
Travaux pratiques :
- Ajouter un attribut calculé
excerptsurPostet un cast enum sur le statut
Relations
- définir les relations 1:1, 1:N et N:N
- exploiter les tables pivot avec attributs supplémentaires
- mettre en œuvre des relations polymorphes
Travaux pratiques :
- Implémenter
User hasMany Post,Post hasMany CommentetPost belongsToMany Tagpuis exploiter ces relations
Requêtes Eloquent
- récupérer une entité ou une collection
- filtrer avec contraintes sur les relations
- définir des scopes locaux pour réutiliser des filtres métier
- éviter le problème N+1 grâce à l’eager loading
Travaux pratiques :
- Implémenter une recherche d’articles publiés avec leurs auteurs et un nombre de commentaires, sans N+1
Jour 3 - Après-midi
Formulaires, validation et authentification
Formulaires Blade et CSRF
- générer un formulaire HTML avec jeton CSRF
- afficher les erreurs et conserver les saisies en cas d’échec
- styliser les états valide / invalide
Travaux pratiques :
- Créer le formulaire de création d’article avec persistance des saisies en cas d’erreur
FormRequest et validation
- créer une FormRequest dédiée par cas
- déclarer les règles métier et utiliser les règles natives
- personnaliser les messages et noms d’attributs
- écrire une règle de validation custom
Travaux pratiques :
- Refondre la validation d’un formulaire complexe de création d’article avec image et tags dans une FormRequest
Upload de fichiers
- recevoir un fichier et le valider
- stocker sur un disque local, public ou distant comme S3
- exposer publiquement via le lien symbolique
storage:link
Travaux pratiques :
- Ajouter un upload d’image au formulaire d’article avec stockage et affichage
Sessions
- comprendre le rôle de la session côté serveur
- choisir un driver de session adapté au contexte
- stocker, lire et oublier des données de session
- exploiter les flash data pour les messages éphémères entre deux requêtes
- protéger la session — régénération de l’identifiant, expiration, cookies sécurisés
Travaux pratiques :
- Implémenter un panier d’achat persistant via la session, avec messages flash après ajout d’un article
Authentification avec Breeze
- installer un starter kit avec choix Blade, Livewire ou Inertia
- comprendre les routes d’authentification générées
- personnaliser vues, contrôleurs et redirections
Travaux pratiques :
- Installer Breeze en version Blade, explorer les routes et personnaliser la page de connexion
Authorization — Gates et Policies
- déclarer un Gate pour une autorisation transverse
- créer une Policy liée à un modèle
- protéger des actions depuis Blade, un contrôleur ou un middleware
Travaux pratiques :
- Restreindre la modification et la suppression d’un article à son auteur via une Policy
Jour 4 - Matin
Fonctionnalités services
Artisan CLI
- explorer les commandes essentielles du quotidien
- créer une commande Artisan custom
- planifier des tâches récurrentes avec le Scheduler
Travaux pratiques :
- Créer une commande
app:cleanup-expiredexécutée quotidiennement
- créer une Mailable
- composer un mail en Markdown ou via une vue, avec pièces jointes
- configurer un driver SMTP ou un service tiers comme Mailgun ou Resend
Travaux pratiques :
- Envoyer un mail de bienvenue après l’inscription d’un utilisateur
Queues et Jobs
- comprendre pourquoi déporter du travail en arrière-plan
- créer un Job persistable
- configurer un driver de queue database ou Redis
- lancer un worker et superviser les échecs
Travaux pratiques :
- Déporter l’envoi du mail de bienvenue dans un Job persisté en base et exécuté par un worker
Events et Listeners
- déclencher un événement applicatif
- y réagir via un Listener classe ou closure
- exploiter les Observers Eloquent sur le cycle de vie d’un modèle
Travaux pratiques :
- Déclencher un événement à la création d’un article et écouter pour notifier les abonnés
Notifications
- créer une Notification
- choisir un canal de diffusion — mail, base de données ou broadcast
- afficher les notifications stockées en base à l’utilisateur
Travaux pratiques :
- Notifier l’auteur d’un article quand un commentaire est posté, en mail et en database
Cache
- choisir un driver de cache adapté à l’environnement
- mettre en cache et invalider intelligemment
- exploiter le tagging pour invalider par groupe
Travaux pratiques :
- Mettre en cache la liste des articles populaires pendant 5 minutes et observer l’effet sur les performances
Jour 4 - Après-midi
Tests, API, écosystème et IA
Tests avec Pest
- découvrir Pest, runner de tests par défaut depuis Laravel 11
- écrire un test unitaire et un test fonctionnel
- tester une route HTTP avec assertions sur la réponse
- isoler la base entre les tests grâce aux factories
Travaux pratiques :
- Écrire des tests Pest sur le contrôleur de ressource d’articles, avec authentification
API Resources et Sanctum
- transformer une réponse JSON via une API Resource
- composer des collections et des relations imbriquées
- protéger une API avec Sanctum via tokens personnels ou cookie SPA
Travaux pratiques :
- Exposer les articles en API JSON via Resource, sécurisée par Sanctum en mode token
Outillage qualité
- formater le code avec Laravel Pint
- déboguer avec Laravel Telescope
- monitorer la production avec Laravel Pulse
- positionner Laravel Octane pour la performance
Travaux pratiques :
- Intégrer Pint à la CI, installer Telescope en environnement local
Écosystème Laravel 13 — panorama
- comprendre Livewire 3 et son intégration aux starter kits
- positionner Inertia.js comme alternative SPA
- découvrir Filament pour les interfaces d’administration
- situer Volt et Folio dans la stack moderne
Travaux pratiques :
- Créer un mini-composant Livewire de recherche d’articles intégré dans le projet
Laravel et IA
- situer les assistants disponibles
- formuler un prompt qui précise la version Laravel et les conventions attendues
- repérer les pièges spécifiques — versions Laravel mélangées dans les exemples, API dépréciées, conventions manquées
- vérifier systématiquement le code généré par exécution Artisan et tests Pest
Travaux pratiques :
- Projet final : application Laravel 13 sous PHP 8.3 avec Pest et Sanctum, intégrant CRUD, relations Eloquent, authentification Breeze, mail différé via Queue, autorisation par Policy, tests Pest verts, API exposée via Resource ; un module CRUD du projet est généré avec un assistant IA puis corrigé pour respecter les conventions Laravel 13
Modalités d’évaluation des acquis
En cours de formation, par des études de cas ou des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation.
Voir aussi
Vous serez peut-être intéressés par les formations suivantes :
Formation DEV-LARAVEL-100 — Laravel - Initiation. Domaine : Développement. Niveau : Initiation. Durée : 4 jours (28 heures). Mots-clés : laravel 13, php 8.3, composer, herd, blade, eloquent, migrations, factories, formrequest, breeze, sanctum, policies, queues, jobs, mail, pest, api resources, livewire, filament, inertia, octane, telescope, pulse, ia, développement, initiation, php, web, backend, framework. Cylian Formation, Dijon.