【Introduction】
ThinkPHP6 est un framework open source PHP bien connu. Il hérite avec élégance des excellentes fonctionnalités de la version précédente et intègre les nouvelles fonctionnalités de PHP7, le rendant plus rapide et plus sécurisé. Dans ThinkPHP6, le middleware est un élément très important, qui permet aux développeurs de traiter avant, pendant et après la demande pour obtenir des applications plus flexibles et évolutives.
【Texte】
1. Qu'est-ce qu'un middleware ?
Le middleware fait référence au code qui peut être exécuté avant et après qu'une requête parvienne à votre application. L'existence d'un middleware permet d'étendre et de gérer facilement les applications.
Dans ThinkPHP6, le middleware peut implémenter les fonctions suivantes :
2. Utilisation du middleware
Utilisation du middleware de ThinkPHP6 est très simple, seule la configuration du Middleware doit être effectuée dans le fichier de configuration, qui peut être exécuté dans l'ordre spécifié.
2.1 Enregistrement du middleware
Dans le fichier config/middleware.php, vous pouvez voir la liste des middlewares par défaut suivante :
<?php return [ // 别名或分组 'alias' => [], // 优先级设置,此数组中的中间件会按照优先级进行先后排序 'priority' => [], // 中间件列表 'middleware' => [ hinkmiddlewareSessionInit::class, hinkmiddlewareAllowCrossDomain::class, ], ];
Parmi eux, le premier middleware est le middleware SessionInit, dont le but est d'initialiser la session, et le second Le middleware est le middleware AllowCrossDomain, conçu pour autoriser les requêtes inter-domaines. Si vous devez configurer votre propre middleware, vous pouvez définir votre propre classe de middleware et l'ajouter à la configuration ci-dessus.
2.2 Tri des middlewares
Les middlewares dans ThinkPHP6 peuvent être triés en fonction de la priorité. Plus la valeur de priorité est petite, plus l'ordre d'exécution est élevé. Dans le fichier de configuration du middleware, vous pouvez définir la priorité du middleware pour le groupe ou l'alias spécifié, comme indiqué ci-dessous :
<?php return [ // 别名或分组 'alias' => [ 'home' => ppmiddlewareCheck::class, ], // 优先级设置,此数组中的中间件会按照优先级进行先后排序 'priority' => [ ppmiddlewareDemo::class => 1, ppmiddlewareTest::class => 2, ], // 中间件列表 'middleware' => [ hinkmiddlewareSessionInit::class, hinkmiddlewareAllowCrossDomain::class, ], ];
Dans la configuration ci-dessus, définissez le middleware de démonstration sur la priorité 1 et le middleware de test sur la priorité 2. .
2.3 Utilisation du middleware
Dans ThinkPHP6, le middleware peut être utilisé pour le routage global ou le routage de groupe, ou pour des contrôleurs ou des méthodes de contrôleur spécifiés.
(1) Le routage global utilise un middleware
Dans le fichier route/route.php du répertoire de l'application, vous pouvez enregistrer le routage global comme suit :
<?php use thinkacadeRoute; Route::get('hello/:name','index/hello')->middleware('Check');
Dans le code ci-dessus, ajoutez-le via le middleware('Check') A un middleware nommé Check est créé, ce qui signifie que le middleware Check est exécuté avant l'exécution de la méthode index/hello.
(2) Le routage de groupe utilise un middleware
Dans le fichier route/group.php du répertoire de l'application, vous pouvez enregistrer le routage de groupe, comme indiqué ci-dessous :
<?php use thinkacadeRoute; //定义分组路由 Route::group('/api', function () { Route::get('/user/:id', 'api/user/read')->middleware('Check'); });
Dans le code ci-dessus, un groupe nommé api est défini Routage, où la route /user/:id utilise un middleware appelé Check.
(3) Utilisation d'un middleware au niveau du contrôleur
Dans le fichier du contrôleur, vous pouvez définir un middleware au niveau de la méthode via des méthodes spécialement nommées, comme indiqué ci-dessous :
<?php namespace appcontroller; class Test { // 方法级别 public function read() { return "Hello Word!"; } // 方法级别 public function write() { return "Hello China!"; } // 控制器级别 protected $middleware = [ppmiddlewareCheck::class]; // 方法级别 protected $middleware = [ 'read' => [ppmiddlewareReadCheck::class], 'write' => [ppmiddlewareWriteCheck::class], ]; }
Dans le code ci-dessus, les méthodes de lecture et d'écriture utilisent La méthode Le middleware au niveau du contrôleur est un middleware au niveau de la méthode et le middleware Check est un middleware au niveau du contrôleur.
【Résumé】
Le Middleware est un outil puissant qui fournit une méthode de traitement des demandes très flexible, nous permettant de traiter les données avant, pendant et après la demande. Dans ThinkPHP6, l'utilisation du middleware est très simple. Il vous suffit d'écrire des classes de middleware selon certaines règles et de les configurer. Il offre une grande flexibilité et évolutivité.
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!