Maison  >  Article  >  cadre php  >  Parlons des différents middlewares de ThinkPHP6

Parlons des différents middlewares de ThinkPHP6

王雪芹
王雪芹original
2020-05-06 17:18:082218parcourir

Il existe une nouvelle fonction middleware dans ThinkPHP6, et le middleware est divisé en plusieurs types de middleware. De nombreux novices ont des difficultés avec le middleware ThinkPHP6, je vais vous les présenter ci-dessous.

Middleware global :

Après avoir téléchargé le framework ThinkPHP6, il y a un middleware.php dans le répertoire de l'application défini dans le middleware. Le répertoire est appelé middleware global. Le middleware global est un middleware efficace pour toutes les applications.

Middleware d'application :

En d'autres termes, si nous copions une autre copie de middleware.php et la plaçons sous une application, comme index application, est-ce appelé middleware d'application ? La réponse est correcte.

Middleware du contrôleur :

Si un middleware est utilisé dans le contrôleur, est-il appelé middleware du contrôleur ?

Middleware de routage :

Puis-je également définir un middleware dans le routage, par exemple, je ne veux qu'une certaine requête Si vous utilisez certains middleware et d'autres ne veulent pas utiliser de middleware, alors il existe un middleware de routage.

Si tous les types de middleware sont définis pour une même requête, quel est l'ordre d'exécution ?

Middleware global->Middleware d'application->Middleware de route->Middleware de contrôleur

Ensuite, nous examinons un exemple.

Middleware global :

 public function handle($request, \Closure $next)
    {
        echo 'app全局中间件';
        return $next($request);
    }

Middleware d'application :

public function handle($request, \Closure $next)
    {
        echo '应用中间件';
        return $next($request);
    }

Middleware de routage :

Route::rule('hello','index/hello')
->middleware(\app\middleware\Auth::class);

Middleware de contrôleur :

Avant d'utiliser le middleware du contrôleur, nous définissons d'abord l'alias et définissons l'alias dans configmiddleware.php dans le répertoire racine. Cet alias consiste en fait à ajouter un identifiant d'alias. Une fois l'alias défini, il peut être utilisé non seulement dans le middleware du contrôleur, mais également dans le middleware de routage.

return [
    'alias' => [
        'auth1' => app\middleware\Auth1::class,
    ],
];

Lorsque nous définissons l'alias middleware ici, nous n'avons pas besoin de le déclarer dans middleware.php. Au lieu de cela, nous utilisons la définition de l'alias dans le contrôle :

class Index
{
    protected $middleware = ['auth1'];
    public function index()
    {
       return 'index';
    }
    public function hello()
    {
       echo 'hello方法';
    }
}

À ce stade, nous accédez à la méthode hello, le résultat est :

middleware global d'application

middleware d'application

middleware de routage

middleware de contrôleur

Bonjour la méthode

Ce qui précède est une introduction aux différents middlewares de ThinkPHP6. En fait, les différents middlewares ne sont pas difficiles à comprendre, principalement parce que tout le monde doit être clair sur l'ordre des. exécution entre eux.

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