Ce que vous allez apprendre

Maîtriser les concepts fondamentaux
Développer des projets concrets
Obtenir une certification reconnue
Accéder à un support continu

Programme de la formation

Module 1 : Introduction à Laravel

7 leçons

Qu'est-ce que Laravel ?

Laravel est un framework PHP open-source conçu pour développ...

15 min

Pourquoi utiliser Laravel ?

Syntaxe claire et élégante, productivité élevée, ORM puissan...

20 min

À qui s'adresse Laravel ?

Développeurs PHP, freelances, agences, entreprises, formateu...

10 min

Outils nécessaires

PHP >= 8.1, Composer, serveur local (XAMPP/Laragon), éditeur...

25 min

Installation de Laravel

Installer via Composer ou Laravel Installer. Configuration d...

30 min

Structure d'un projet Laravel

Découverte de l'arborescence : app/, routes/, resources/, da...

35 min

Lancer l'application localement

php artisan serve pour démarrer un serveur local sur http://...

15 min

Module 2 : Architecture de Laravel

8 leçons

Introduction à l'architecture MVC

Modèle-Vue-Contrôleur : séparation des responsabilités pour...

30 min

Le modèle MVC expliqué

Modèle gère les données, Vue affiche l'interface, Contrôleur...

40 min

Les routes dans Laravel

Définition des routes dans routes/web.php et routes/api.php

35 min

Les contrôleurs

Créer et utiliser des contrôleurs pour gérer la logique méti...

45 min

Les vues avec Blade

Moteur de template Blade pour créer des interfaces dynamique...

40 min

Les middlewares

Filtres HTTP pour sécuriser et contrôler l'accès aux routes.

50 min

Les Service Providers

Initialisation des fonctionnalités Laravel au démarrage.

35 min

Les Facades

Interface statique pour accéder aux services du container.

30 min

Module 3 : Les routes et les contrôleurs

12 leçons

Introduction aux routes Laravel

Points d'entrée définissant comment Laravel répond aux requê...

20 min

Créer une route simple

Route::get, Route::post et fonctions anonymes.

25 min

Types de routes

GET, POST, PUT, PATCH, DELETE, match, any.

30 min

Routes avec paramètres

Paramètres obligatoires et facultatifs dans les URL.

35 min

Nommer une route

Utiliser name() pour référencer facilement les routes.

20 min

Routes vers un contrôleur

Envoyer les requêtes vers des méthodes de contrôleur.

30 min

Créer un contrôleur

php artisan make:controller pour générer un contrôleur.

25 min

Exemple de contrôleur simple

Créer des méthodes pour gérer différentes actions.

40 min

Groupe de routes

Grouper par middleware, préfixe ou nom.

35 min

Routes avec nom et middleware

Combiner nommage et protection des routes.

30 min

Ressources CRUD automatiques

Route::resource pour générer 7 routes CRUD.

45 min

Routes API

Définir des routes API dans routes/api.php

30 min

Module 4 : Les vues avec Blade

11 leçons

Introduction à Blade

Moteur de template intégré pour générer du HTML dynamique.

20 min

Créer une vue Blade

Fichiers .blade.php dans resources/views/.

25 min

Passer des données à une vue

Utiliser view() et compact() pour transmettre des variables.

30 min

Syntaxe Blade - Conditions

@if, @else, @elseif, @unless pour les conditions.

35 min

Syntaxe Blade - Boucles

@foreach, @for, @while, @forelse pour itérer.

35 min

Layouts et sections

@extends, @section, @yield pour créer des templates.

45 min

Inclure une vue partielle

@include pour réutiliser des composants.

30 min

Affichage conditionnel

@switch, @case pour gérer plusieurs conditions.

25 min

Afficher des données brutes

{!! !!} pour désactiver l'échappement HTML.

20 min

Ajouter CSS/JS dans Blade

Utiliser asset() pour lier les fichiers statiques.

30 min

Afficher erreurs et messages flash

@error, session()->flash() pour les notifications.

35 min

Module 5 : Gestion des bases de données

11 leçons

Introduction aux bases de données

Migrations, Eloquent ORM, Seeders et Factories.

20 min

Configuration .env

Configurer la connexion à MySQL/PostgreSQL.

25 min

Les migrations

Créer et modifier des tables avec php artisan migrate.

40 min

Types de colonnes

string, text, integer, boolean, timestamps, etc.

35 min

Eloquent ORM - Le Modèle

Créer des modèles pour représenter les tables.

45 min

CRUD avec Eloquent

Create, Read, Update, Delete avec Eloquent.

50 min

Relations hasOne/belongsTo

Relations 1 à 1 entre modèles.

40 min

Relations hasMany

Relations 1 à N (un utilisateur a plusieurs articles).

40 min

Relations belongsToMany

Relations N à N avec tables pivot.

45 min

Les Seeders

Peupler la base avec des données initiales.

35 min

Les Factories

Générer des données aléatoires pour les tests.

40 min

Module 6 : Formulaires et validation

10 leçons

Introduction aux formulaires

Créer des formulaires interactifs avec Laravel.

20 min

Créer un formulaire HTML

Utiliser Blade pour créer des formulaires.

30 min

Récupérer les données

Request::all() et $request->input().

25 min

Valider les données

validate() pour sécuriser les entrées utilisateur.

40 min

Règles de validation

required, min, max, email, unique, confirmed, etc.

45 min

Gérer les erreurs de validation

@error et $errors pour afficher les messages.

35 min

Personnaliser les messages

Modifier les textes d'erreur par défaut.

30 min

Form Request Classes

Créer des classes dédiées pour la validation.

40 min

Messages de succès

Flash messages pour notifier l'utilisateur.

25 min

Protection CSRF

@csrf pour sécuriser les formulaires.

30 min

Module 7 : Authentification et sécurité

11 leçons

Introduction à l'authentification

Système complet : inscription, connexion, réinitialisation.

25 min

Solutions disponibles

Breeze, Jetstream, UI, Fortify, Sanctum.

30 min

Installer Laravel Breeze

Auth simple avec Blade en quelques commandes.

40 min

Middleware auth

Protéger les routes avec middleware('auth').

35 min

Afficher l'utilisateur connecté

Auth::user() et @auth dans les vues.

25 min

Connexion/Déconnexion

Auth::attempt() et Auth::logout().

30 min

Middleware guest

Pages accessibles uniquement aux non-connectés.

25 min

Ajouter un rôle

Colonne role et middleware personnalisé.

40 min

Protection CSRF

Token automatique dans les formulaires.

30 min

Hachage des mots de passe

bcrypt avec Hash::make() et Hash::check().

25 min

Protection XSS

Échappement automatique avec {{ }}.

20 min

Module 8 : API REST avec Laravel

10 leçons

Introduction aux API

Fournir des données JSON pour apps mobiles et SPA.

25 min

Différences Web vs API

Stateless, JSON, routes/api.php.

30 min

Créer une route API

Définir dans routes/api.php avec préfixe /api.

25 min

Créer un contrôleur API

Retourner des réponses JSON structurées.

35 min

Réponses JSON

response()->json() avec codes HTTP appropriés.

30 min

API Resources

Formater les données avec des classes Resource.

45 min

Authentification Sanctum

Authentification par tokens sécurisés.

50 min

Générer un token

createToken() pour authentifier les API.

35 min

Protéger les routes API

Middleware auth:sanctum.

30 min

Appel API avec token

Header Authorization: Bearer {token}.

25 min

Module 9 : Téléversement de fichiers

10 leçons

Introduction aux uploads

Gérer l'upload de fichiers simplement.

20 min

Formulaire de téléversement

enctype='multipart/form-data' obligatoire.

30 min

Récupérer et stocker

$request->file() et store().

40 min

Stockage public

storage/app/public et lien symbolique.

35 min

Configurer le disque

FILESYSTEM_DISK dans .env.

25 min

Nom unique de fichier

storeAs() pour personnaliser le nom.

30 min

Afficher un fichier

asset('storage/fichier.jpg').

25 min

Supprimer un fichier

Storage::delete().

20 min

Validation des fichiers

file, image, mimes, max pour valider.

35 min

Stockage Amazon S3

Configuration pour cloud storage.

40 min

Module 10 : Notifications et mails

10 leçons

Introduction aux notifications

Envoyer emails, SMS, notifications database.

20 min

Configuration SMTP

Configurer .env pour l'envoi d'emails.

30 min

Envoi email simple

Créer une classe Mailable.

40 min

Vue Blade email

Template HTML pour les emails.

35 min

Envoyer depuis contrôleur

Mail::to()->send().

25 min

Utiliser les notifications

Système multicanaux (mail, database, Slack).

45 min

Notifications database

Stocker notifications dans la BDD.

40 min

Lire les notifications

$user->notifications et markAsRead().

30 min

Files d'attente (Jobs)

Envoi asynchrone avec queues.

50 min

Tester avec Mailtrap

Service de test d'emails.

25 min

Module 11 : Système de commentaires

9 leçons

Introduction aux commentaires

Relations One to Many pour les commentaires.

20 min

Modèle Article existant

Prérequis : table articles.

15 min

Modèle Commentaire

Migration avec article_id et user_id.

35 min

Relations entre modèles

hasMany() et belongsTo().

40 min

Formulaire de commentaire

Créer un form pour ajouter un commentaire.

35 min

Route et contrôleur

CommentaireController@store.

40 min

Afficher les commentaires

@foreach dans la vue article.

35 min

Eager Loading

with('commentaires') pour éviter N+1.

40 min

Relations polymorphes

Commentaires sur plusieurs modèles.

50 min

Module 12 : Filtres, recherches et pagination

8 leçons

Introduction

Chercher, filtrer et paginer efficacement.

20 min

Pagination de base

paginate() et liens automatiques.

35 min

Personnaliser la pagination

Changer le nombre d'éléments et le style.

30 min

Recherche par mot-clé

where('titre', 'like', '%search%').

40 min

Filtres par catégorie

when() pour filtres conditionnels.

35 min

Trier les résultats

orderBy() dynamique.

30 min

Pagination avec Livewire

Pagination sans rechargement de page.

45 min

Exemple complet combiné

Recherche + Filtre + Tri + Pagination.

50 min

Module 13 : Rôles et autorisations (Gates & Policies)

10 leçons

Introduction

Contrôler les permissions utilisateurs.

25 min

Les Gates

Règles globales pour vérifications simples.

40 min

Utiliser Gates

Gate::allows() et @can dans Blade.

35 min

Les Policies

Autorisations liées à des modèles.

45 min

Créer une Policy

php artisan make:policy ArticlePolicy.

40 min

Enregistrer la Policy

AuthServiceProvider configuration.

30 min

Utiliser dans contrôleur

$this->authorize().

35 min

Utiliser dans Blade

@can('update', $article).

25 min

Rôles en base de données

Colonne role pour gérer les permissions.

40 min

Bloquer l'accès aux routes

Middleware can:action,model.

30 min

Module 14 : Laravel + Vue.js/React (SPA)

9 leçons

Introduction aux SPA

Backend Laravel + Frontend JS.

25 min

Inertia.js c'est quoi ?

Pont entre Laravel et Vue/React.

30 min

Installer Inertia + Vue

Laravel Breeze avec Inertia stack.

45 min

Structure des vues

resources/js/Pages/ au lieu de views.

35 min

Routes Inertia

Inertia::render() avec props.

30 min

Authentification Inertia

Login, Register, Reset intégrés.

40 min

API REST classique

Frontend séparé consommant l'API.

45 min

Gérer le CORS

Configuration Cross-Origin.

35 min

Choisir Inertia vs API

Comparaison et cas d'usage.

30 min

Module 15 : Tests automatisés (PHPUnit)

10 leçons

Introduction aux tests

Tests unitaires, fonctionnels et navigateur.

25 min

Types de tests

Unit, Feature, Browser (Dusk).

30 min

Écrire un test unitaire

php artisan make:test --unit.

40 min

Exécuter les tests

php artisan test.

25 min

Tester une route

$this->get() et assertStatus().

40 min

Tester avec utilisateur

$this->actingAs($user).

35 min

Factories pour tests

User::factory()->create().

40 min

Tests d'API

assertJson() et assertJsonStructure().

35 min

Bonnes pratiques

RefreshDatabase, nommage clair.

30 min

Laravel Dusk

Tests de navigateur bout en bout.

50 min

Module 16 : Déploiement en production

14 leçons

Introduction au déploiement

Rendre l'app accessible sur Internet.

20 min

Prérequis du serveur

PHP 8.1+, MySQL, Composer, Nginx.

30 min

Méthodes de déploiement

Git, CI/CD, Forge, Vapor.

25 min

Cloner le projet

git clone sur le serveur.

30 min

Installer dépendances

composer install --no-dev.

25 min

Configurer .env

APP_ENV=production, APP_DEBUG=false.

35 min

Générer la clé

php artisan key:generate.

20 min

Permissions

chmod 755, chown www-data.

30 min

Compiler les assets

npm run build.

25 min

Migrer la BDD

php artisan migrate --force.

30 min

Configurer Nginx

Virtual host et redirection.

45 min

Activer HTTPS

Certbot et Let's Encrypt.

40 min

Sécuriser Laravel

Protéger .env, routes admin.

35 min

GitHub Actions

Automatiser le déploiement.

50 min

Module 17 : Laravel Livewire

10 leçons

Introduction à Livewire

Composants dynamiques sans JavaScript.

25 min

Installation Livewire

composer require livewire/livewire.

30 min

Créer un composant

php artisan make:livewire Compteur.

35 min

Compteur interactif

wire:click pour actions.

40 min

Two-Way Binding

wire:model pour formulaires.

45 min

Formulaire en temps réel

ContactForm avec validation.

40 min

Filtrage dynamique

Liste filtrée en temps réel.

45 min

Bonnes pratiques

wire:model.defer, wire:loading.

30 min

Pagination Livewire

WithPagination trait.

35 min

Livewire + Alpine.js

Combiner pour effets frontend.

40 min

Module 18 : API REST - Avancé

11 leçons

Introduction API propre

Construire une API professionnelle.

20 min

Créer projet API

Laravel API-only ou routes/api.php.

30 min

Routes API

Préfixe /api et middleware api.

25 min

Contrôleur API

Retourner JSON avec codes HTTP.

35 min

API Resources

Formater proprement avec Resources.

45 min

Sécuriser avec Sanctum

Authentification par tokens.

40 min

Générer un token

createToken() pour utilisateur.

30 min

Appel API avec token

Authorization Bearer header.

25 min

Bonnes pratiques API

Codes HTTP, validation, versionnement.

40 min

Pagination dans API

Meta data automatique.

30 min

Tester avec Postman

Thunder Client ou Postman.

35 min

Module 19 : WebSockets & temps réel (Laravel Echo)

11 leçons

Introduction WebSockets

Communication bidirectionnelle temps réel.

25 min

Cas d'usage

Chat, notifications, dashboard live.

20 min

Installer Laravel Echo

npm install + Pusher/Socket.IO.

40 min

Configuration Pusher

BROADCAST_DRIVER=pusher dans .env.

35 min

Créer événement broadcastable

implements ShouldBroadcast.

45 min

Déclencher l'événement

event(new MessageEnvoye()).

30 min

Installer Echo côté frontend

Laravel Echo + Pusher JS.

40 min

Écouter les événements

Echo.channel().listen().

35 min

Notifications broadcast

via(['broadcast', 'database']).

40 min

Laravel Websockets

Alternative self-hosted à Pusher.

50 min

Canaux privés

Sécuriser avec routes/channels.php.

45 min

Module 20 : Laravel Jetstream

11 leçons

Qu'est-ce que Jetstream ?

Starter kit avancé avec 2FA, équipes.

25 min

Installation

composer require laravel/jetstream.

35 min

Choisir Livewire ou Inertia

php artisan jetstream:install livewire.

30 min

Fonctionnalités incluses

Auth, 2FA, sessions, API tokens.

40 min

Double authentification 2FA

Google Authenticator intégré.

45 min

Gestion sessions actives

Déconnecter appareils distants.

35 min

API Tokens Sanctum

Créer tokens pour apps mobiles.

40 min

Gestion des équipes

Créer organisations multi-utilisateurs.

50 min

Middleware Jetstream

auth, verified, password.confirm.

30 min

Interface utilisateur

Tailwind CSS personnalisable.

35 min

Alternatives à Jetstream

Breeze, UI, Fortify.

25 min

Module 21 : Laravel Horizon

12 leçons

Introduction à Horizon

Supervision des files d'attente.

25 min

Pourquoi les queues ?

Déléguer tâches longues aux workers.

30 min

Installation Horizon

composer require laravel/horizon.

35 min

Configuration

QUEUE_CONNECTION=redis dans .env.

30 min

Lancer Horizon

php artisan horizon.

25 min

Interface Horizon

Dashboard /horizon en temps réel.

40 min

Créer un Job

php artisan make:job EnvoyerEmail.

40 min

Déclencher un job

dispatch(new EnvoyerEmail()).

30 min

Workers avec supervisor

Production avec supervisor Linux.

50 min

Prioriser les queues

emails, notifications, default.

35 min

Failed Jobs

Rejouer avec artisan queue:retry.

40 min

Notifications anomalies

Alertes sur échecs ou lenteurs.

30 min

Module 22 : Laravel Scout (Recherche avancée)

12 leçons

Introduction à Scout

Recherche full-text avec Algolia/Meilisearch.

25 min

Installation Scout

composer require laravel/scout.

30 min

Choisir un moteur

Algolia (SaaS) ou Meilisearch (open source).

35 min

Configuration Algolia

ALGOLIA_APP_ID et ALGOLIA_SECRET.

40 min

Configuration Meilisearch

Installation locale et MEILISEARCH_HOST.

40 min

Rendre modèle searchable

use Searchable trait.

35 min

Indexer les données

php artisan scout:import.

30 min

Effectuer une recherche

Article::search('laravel')->get().

35 min

Recherche dans frontend

Intégrer avec Livewire ou Vue.

45 min

Pagination Scout

search()->paginate().

30 min

Filtres avancés

where() avec Scout.

40 min

Synchronisation auto

Indexation automatique sur save/delete.

25 min