0% ont trouvé ce document utile (0 vote)
21 vues16 pages

Définition et pratiques des middlewares

Le document explique le concept de middleware dans Laravel, qui sert de filtre pour intercepter les requêtes HTTP. Il présente les avantages tels que la séparation des responsabilités et la réutilisation, ainsi que les inconvénients comme la complexité accrue. Des bonnes pratiques et un exemple pratique de création d'un middleware de connexion utilisateur sont également fournis.

Transféré par

sahoudmassahoud
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
21 vues16 pages

Définition et pratiques des middlewares

Le document explique le concept de middleware dans Laravel, qui sert de filtre pour intercepter les requêtes HTTP. Il présente les avantages tels que la séparation des responsabilités et la réutilisation, ainsi que les inconvénients comme la complexité accrue. Des bonnes pratiques et un exemple pratique de création d'un middleware de connexion utilisateur sont également fournis.

Transféré par

sahoudmassahoud
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

LES

LES MIDDELWARE
MIDDELWARE
PLAN
PLAN

01
DEFINITION
DEFINITION

Dans Laravel, un middleware est un filtre qui intercepte


les requêtes HTTP entrant ou sortant de votre application.
Il permet d'exécuter une logique avant qu'une requête
atteigne le contrôleur ou après qu'une réponse ait été
générée.

Par exemple :
•Vérifier si un utilisateur est authentifié.

02
AVANTAGES
AVANTAGES

•Séparation des responsabilités : Les middlewares isolent


les fonctionnalités transversales (comme l’authentification,
la journalisation) du code métier.

•Réutilisation : Un même middleware peut être appliqué à


plusieurs routes.

•Facilité de maintenance : Les modifications dans les


fonctionnalités transversales sont centralisées dans un
middleware.

03
INCONVENIENT
INCONVENIENT

•Complexité accrue : Trop de middlewares peuvent compliquer


la compréhension du flux des requêtes.

•Impact sur la performance : Une mauvaise gestion ou un


excès de middlewares peut ralentir les requêtes HTTP.

04
BONNE
BONNEPRATIQUE
PRATIQUE

[Link] l'utilisation excessive : Évitez de surcharger vos


routes avec trop de middlewares.

[Link] : Placez vos middlewares dans des fichiers


séparés pour une meilleure lisibilité.

[Link] : Configurez vos middlewares globaux et locaux


en fonction des besoins.

[Link] : Documentez le rôle et l'usage de chaque


middleware pour faciliter la maintenance.

05
CAS
CASPRATIQUE
PRATIQUE

Middleware de connexion utilisateur

Étape 1 : Création d’un middleware


Utilisez la commande suivante pour créer un middleware appelé CheckLogin :
php artisan make:middleware CheckLogin

06
CAS
CASPRATIQUE
PRATIQUE

Middleware de connexion utilisateur

Étape 2 : Ajout de la logique


Dans le fichier app/Http/Middleware/[Link] :

07
CAS
CASPRATIQUE
PRATIQUE

Middleware de connexion utilisateur


namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class CheckLogin
{
public function handle($request, Closure $next)
{
if (!Auth::check()) {
// Redirigez l'utilisateur s'il n'est pas connecté
return redirect('/login')->with('error', 'Vous devez être connecté.');
}

return $next($request); // Continuez la requête


} 08
}
CAS
CASPRATIQUE
PRATIQUE

Middleware de connexion utilisateur


Étape 3 : Enregistrement du middleware
Dans le fichier app/Http/[Link], enregistrez
le middleware :

protected $routeMiddleware = [
'[Link]' => \App\Http\Middleware\CheckLogin::class,
];

09
CAS
CASPRATIQUE
PRATIQUE

Middleware de connexion utilisateur

Étape 4 : Application du middleware


Appliquez le middleware à une route spécifique dans le fichier
routes/[Link] :

Route::get('/dashboard', [DashboardController::class, 'index'])->middleware('[Link]');

10
CAS
CASPRATIQUE
PRATIQUE

Middleware de connexion utilisateur


1. namespace App\Http\Middleware;

•Le mot-clé namespace définit l'espace de noms où se trouve cette classe.


Cela permet d’organiser les classes et de les éviter d’entrer
en conflit avec d’autres classes portant le même nom.
Ici, la classe CheckLogin appartient au namespace App\Http\Middleware,
qui regroupe les middlewares de votre application Laravel.

2. use Closure;

•use Closure importe la classe Closure utilisée pour représenter des


fonctions anonymes en PHP. Elle est nécessaire car la méthode handle
utilise une instance de cette classe pour la chaîne d’exécution des requêtes.

11
CAS
CASPRATIQUE
PRATIQUE

Middleware de connexion utilisateur

3. use Illuminate\Support\Facades\Auth;
•Cela importe la façade Auth de Laravel. Elle est utilisée pour interagir avec le système
d’authentification et vérifier si un utilisateur est connecté (Auth::check()).

4. class CheckLogin

•Cette ligne déclare une classe PHP appelée CheckLogin. Elle est utilisée pour définir un
middleware personnalisé.

12
CAS
CASPRATIQUE
PRATIQUE

Middleware de connexion utilisateur


5. public function handle($request, Closure $next)

•La méthode handle est obligatoire pour tout middleware Laravel. Elle contient la
logique principale qui intercepte la requête HTTP.
•$request : Représente la requête HTTP entrante.
•Closure $next : Une fonction permettant de passer la requête au prochain middleware
ou au contrôleur.

6. if (!Auth::check())
•Auth::check() retourne true si l'utilisateur est connecté, sinon false.
•Le bloc if (!Auth::check()) vérifie si l'utilisateur n'est pas connecté (! signifie "non").

13
CAS
CASPRATIQUE
PRATIQUE

Middleware de connexion utilisateur


7. return redirect('/login')->with('error', 'Vous devez être connecté.’);

•Si l'utilisateur n'est pas connecté, il est redirigé vers la page de connexion (/login) avec
un message d’erreur.
•with('error', 'Vous devez être connecté.') : Passe une variable temporaire error
contenant le message d’erreur à la vue.

8. return $next($request);

•Si l’utilisateur est connecté, la requête est transférée au prochain middleware ou au contrôleur.
Cela permet au flux normal de la requête de continuer.

14

Vous aimerez peut-être aussi