Laravel
Models Migration Relation
Introduction Installation Projet:Structure Strucutre,model,migration Migration,Models,Relation Artisan CLI Migrations:Exemples Models:Exemples Relations:Exemples 1 Relations:Exemples 2
Les Relations
BelongsTo HasOne HasMany BelongsToMany HasManyThrough
Exemples des Relations
Relations:oneToMany,ManyToMany... Relations:Exemples
Exercices
Exercice 1 Exercice 2
Controllers Views Routes
Routes,Controller,Model,view
Les Routes
Définir:Routes Routes avec Paramètres Routes nommées Groupes de routes
Les Controllers
Les Controllers Les Contrôleurs de Ressources
Les Vues
Vues et Blade Templates Blade Layouts et Sections Sous-vues Composants et Slots Contrôles de flux
MVC :CRUD
CRUD: Produit CRUD: Etudiant CRUD: Car CRUD,Recherche: Book
Validation
Exemple :Projets
ORM:Eloquent
Exemple :Transport
Api:Laravel +React
Middleware

Seeders & Factories
Exemples :EFM

Authenfication
TP:Schools Management
Authenfication:React
Layouts
Exercices





Laravel Routage: Middleware

Introduction

Les middlewares dans Laravel sont des couches intermédiaires qui traitent les requêtes entrantes avant qu'elles n'atteignent la logique de votre application. Ce tutoriel approfondi explore l'utilisation des middlewares dans le routage de Laravel.

Exemples

Déclaration d'un Middleware :


// Création d'un middleware personnalisé
php artisan make:middleware MonMiddleware


// MonMiddleware.php
class MonMiddleware
{
    public function handle($request, Closure $next)
    {
        // Logique à exécuter avant la requête
        return $next($request);
    }
}


// Kernel.php
protected $middleware = [
    // ...
    \App\Http\Middleware\MonMiddleware::class,
];

Utilisation du Middleware dans une Route :


// web.php
Route::get('/profil', function () {
    return 'Affichage du profil utilisateur';
})->middleware('MonMiddleware');

Middleware avec Paramètres :


// MonMiddleware.php
public function handle($request, Closure $next, $parametre)
{
    // Logique à exécuter avec le paramètre
    return $next($request);
}


// Kernel.php
protected $routeMiddleware = [
    // ...
    'monMiddleware' => \App\Http\Middleware\MonMiddleware::class,
];


// web.php
Route::get('/page', function () {
    return 'Affichage de la page';
})->middleware('monMiddleware:monParametre');

Remarques

  • Les middlewares peuvent être appliqués globalement, par groupe de routes, ou individuellement sur chaque route.
  • Un middleware peut effectuer des actions avant et après la requête, et même arrêter la requête si nécessaire.
  • Les middlewares peuvent être des classes prédéfinies ou personnalisées selon les besoins.

Exercices Corrigés

Créez un middleware qui vérifie si l'utilisateur est authentifié avant d'accéder à certaines routes.


// AuthMiddleware.php
class AuthMiddleware
{
    public function handle($request, Closure $next)
    {
        if (auth()->check()) {
            return $next($request);
        } else {
            return redirect('/connexion');
        }
    }
}


// Kernel.php
protected $routeMiddleware = [
    // ...
    'auth' => \App\Http\Middleware\AuthMiddleware::class,
];


// web.php
Route::get('/tableau-de-bord', function () {
    return 'Tableau de bord confidentiel';
})->middleware('auth');

Créez un middleware qui ajoute des en-têtes de sécurité à toutes les réponses de votre application.


// SecuriteMiddleware.php
class SecuriteMiddleware
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);
        $response->header('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');

        return $response;
    }
}


// Kernel.php
protected $middleware = [
    // ...
    \App\Http\Middleware\SecuriteMiddleware::class,
];

Questions à Choix Multiple

Évaluez votre compréhension avec cette question :

Quelle méthode de Laravel est utilisée pour créer un middleware personnalisé?

  • A. `php artisan create:middleware`
  • B. `php artisan make:middleware`
  • C. `php artisan middleware:create`

Réponse correcte : B

Questions & Réponses

Consultez cette section pour trouver des réponses aux questions fréquemment posées sur l'utilisation des middlewares dans le routage de Laravel.

Q: Un middleware peut-il arrêter complètement une requête?

R: Oui, un middleware peut décider de ne pas appeler la prochaine couche de la requête et ainsi arrêter complètement le processus.

Éléments à Retenir

  • Les middlewares dans Laravel sont des couches intermédiaires qui traitent les requêtes avant qu'elles n'atteignent la logique de l'application.
  • Les middlewares peuvent être appliqués globalement, par groupe de routes, ou individuellement sur chaque route.
  • Un middleware peut effectuer des actions avant et après la requête, et même arrêter la requête si nécessaire.
  • Les middlewares peuvent être des classes prédéfinies ou personnalisées selon les besoins.