Maison  >  Article  >  cadre php  >  A quoi sert le middleware Laravel ?

A quoi sert le middleware Laravel ?

WBOY
WBOYoriginal
2022-04-07 16:54:002985parcourir

Dans Laravel, le rôle du middleware est de filtrer les requêtes HTTP et d'effectuer différentes opérations logiques en fonction de différentes requêtes ; le middleware peut intercepter et inspecter les données de la requête, et effectuer un traitement logique pour déterminer s'il faut autoriser l'entrée au prochain middleware.

A quoi sert le middleware Laravel ?

L'environnement d'exploitation de cet article : système Windows 10, Laravel version 6, ordinateur Dell G3.

À quoi sert le middleware de Laravel ?

Le middleware, comme son nom l'indique, intercepte et traite les données des requêtes, vérifie les données entre les requêtes et les réponses et effectue un traitement logique pour déterminer s'il faut autoriser l'entrée au middleware suivant ; into Il s'agit du middleware de préfixe et du post-middleware, il peut être utilisé pour l'authentification des autorisations, la journalisation, etc.

Pour faire simple, le rôle du middleware dans Laravel est de filtrer les requêtes HTTP et d'effectuer différentes opérations logiques basées sur différentes requêtes.

Nous pouvons réaliser les fonctions suivantes grâce au middleware :

  • Spécifier certaines routes

  • Définir les en-têtes de réponse HTTP

  • Enregistrer les requêtes

  • Filtrer les paramètres de la requête

  • Décidez si activer le mode de maintenance du site

  • Effectuez certaines opérations nécessaires avant et après avoir répondu

Middleware personnalisé

Exécutez la commande simple suivante sur la ligne de commande pour créer facilement un nouveau middleware

php artisan make:middleware <MiddlewareName>
//MiddlewareName 就是你要创建的中间件的名字

Exécutez la commande ci-dessus, Laravel créera automatiquement un middleware contenant uniquement la méthode handle dans le répertoire app/Http/Middleware.

<?php
namespace App\Http\Middleware;
use Closure;
class RedirectIfSuperAdmin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        return $next($request);
    }
}

Lorsque le middleware est appelé, la méthode handle sera exécutée. Ce qu'il faut noter ici, c'est que la méthode handle a deux paramètres par défaut $request et $next. $request est utilisé pour accepter le groupe de requêtes de l'application et $next transmet la requête à l'application. Ces deux paramètres sont essentiels pour le manche ! Le middleware comprend également le pré-middleware et le post-middleware.

« Premiddleware », comme son nom l'indique, gère une certaine logique avant de transmettre la requête à l'application. Le middleware After, en revanche, s'exécute une fois que l'application a traité la demande et généré la réponse.

Front middleware :

<?php
namespace App\Http\Middleware;
use Closure;
class RedirectIfSuperAdmin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        //你的逻辑就在这里
        return $next($request);
    }
}

Post middleware :

<?php
namespace App\Http\Middleware;
use Closure;
class RedirectIfSuperAdmin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $response = $next($request);
        //你的逻辑就在这里 例如 重定向到  `/`
        return $response;
    }
}

A quoi sert le middleware Laravel ?

[Recommandations associées : tutoriel vidéo laravel]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn