Table des matières
Middleware global: applicable à toutes les demandes
Groupe de middleware: appliqué à la demande aux collections de routage courantes
Comment choisir un groupe global ou middleware?
Maison cadre php Laravel Appliquer un middleware global ou en groupe à Laravel

Appliquer un middleware global ou en groupe à Laravel

Jul 12, 2025 am 03:20 AM

Dans Laravel, le code en double peut être réduit par des groupes globaux de middleware et de middleware. Global Middleware convient à toutes les demandes, telles que la définition des fuseaux horaires et les packs de langage de chargement. La méthode d'enregistrement consiste à ajouter des noms de classe au tableau $ middleware d'App / http / kernel.php, mais les opérations qui prennent du temps doivent être évitées; Les groupes de middleware sont utilisés pour appliquer plusieurs middleware à un ensemble de routes à la demande, tels que les groupes Web et API. Ils peuvent être personnalisés et appliqués aux itinéraires, tels que l'authentification et le jugement d'autorisation au middleware pour former un groupe d'administration, et appliqués via Route :: Middleware ('admin'); Le middleware global est sélectionné pour les opérations au niveau du système, et les groupes de middleware sont utilisés pour la division d'entreprise, améliorant ainsi la clarté de la structure du projet et la maintenabilité.

Appliquer un middleware global ou en groupe à Laravel

Dans Laravel, si vous voulez que des middleware prennent effet sur tous les itinéraires ou groupes de itinéraires au lieu de les ajouter à chaque route un par un, vous pouvez utiliser un groupe de middleware ou de middleware global. Cette méthode peut réduire le code en double et améliorer la maintenabilité.

Appliquer un middleware global ou en groupe à Laravel

Middleware global: applicable à toutes les demandes

Le middleware global sera exécuté dans chaque demande . Les utilisations courantes incluent le chargement des packs de langage au démarrage, la définition des fuseaux horaires par défaut, etc.

Appliquer un middleware global ou en groupe à Laravel

Pour enregistrer un middleware mondial:

  1. Ouvrir app/Http/Kernel.php
  2. Ajoutez votre nom de classe middleware dans le tableau $middleware

Par exemple:

Appliquer un middleware global ou en groupe à Laravel
 protégé $ middleware = [
    \ App \ http \ middleware \ trusthosts :: class,
    \ App \ http \ middleware \ TrustProxies :: class,
    \ Fruitcake \ coors \ handlecors :: class,
    \ App \ http \ middleware \ empotesRequestSduringMaintenne :: class,
    \ Illuminate \ Foundation \ http \ middleware \ validerPostSize :: class,
    \ App \ http \ middleware \ trimStrings :: class,
    \ Illuminate \ Foundation \ http \ middleware \ convermpystringstonull :: class,
    \ App \ http \ middleware \ loadLanguage :: class, // new global middleware];

Remarque: Global Middleware affectera toutes les demandes, alors ne mettez pas trop d'opérations qui prennent du temps, telles que la requête de base de données. Sauf si vous en avez besoin pour travailler sur toutes les demandes, il est recommandé d'utiliser des groupes de middleware pour être plus flexibles.

Groupe de middleware: appliqué à la demande aux collections de routage courantes

Les groupes de middleware conviennent aux combinaisons de middleware que vous souhaitez appliquer sur plusieurs itinéraires ensemble. Les exemples les plus courants sont les groupes web et api .

Pour créer ou modifier un groupe de middleware:

  1. Ouvrir app/Http/Kernel.php
  2. Trouver $middlewareGroups Array
  3. Ajouter ou modifier une liste de middleware dans un groupe

Par exemple, si vous souhaitez ajouter du middleware de vérification d'autorisation à la page de gestion des antécédents:

 'admin' => [
    \ App \ http \ middleware \ authenticate :: class,
    \ App \ http \ middleware \ checkAdMinrole :: class,
    \ Illuminer \ routing \ middleware \ substitutebindings :: class,
],

Ensuite, lorsque vous définissez l'itinéraire, utilisez-le comme ceci:

 Route :: middleware ('admin') -> prefix ('admin') -> groupe (function () {
    Route :: Get ('/ Dashboard', [AdminController :: Class, 'Dashboard']);
    Route :: Resource («Users», UserController :: Class);
});

L'avantage de cela est qu'il a une structure claire et est pratique pour la gestion unifiée. Dans le même temps, il peut également éviter d'écrire un tas de middleware sur chaque itinéraire, en réduisant les erreurs et les coûts de maintenance.

Comment choisir un groupe global ou middleware?

  • Utilisez le middleware global : adapté aux opérations au niveau du système, telles que les restrictions de sécurité de base, la journalisation, la configuration d'initialisation, etc.
  • Groupe middleware : adapté à la division des scénarios d'entreprise, tels que le premier plan Web, l'interface API, la gestion des backend, etc.

Pour donner un exemple pratique:

  • Vous avez un projet de centre commercial et l'accès des utilisateurs frontaux nécessite une prise en charge de la session, et l'administrateur back-end a également besoin d'authentification supplémentaire.
  • Ensuite, vous pouvez placer \App\Http\Middleware\EncryptCookies::class , \Illuminate\Session\Middleware\StartSession::class , etc. dans web .
  • L'interface d'arrière-plan utilise un groupe admin personnalisé, qui contient du middleware pour le jugement d'autorisation d'authentification.

Fondamentalement, c'est tout. L'utilisation rationnelle des groupes mondiaux et middleware peut rendre votre structure de projet Laravel plus claire et plus facile à développer et à maintenir.

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 de ce site Web
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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment enregistrer les messages dans un fichier dans Laravel? Comment enregistrer les messages dans un fichier dans Laravel? Sep 21, 2025 am 06:04 AM

LaravelsesMonologTologMessagesViathelogFacade, avec DefaultLogsStoredInstorage / Logs / Laravel.log.ConfigureChannelsInConfig / Logging.PhptoControloutput

Comment authentifier une API à Laravel Comment authentifier une API à Laravel Sep 18, 2025 am 12:26 AM

InstallerLaravelsanctumviacomposerAndPublishitsFiles, theNrunmigrations.2.AddthehasapitokenstraitTotheUserModel.3.Definelogin, Logout, andUserRoutesInapi.php, usingsanctum’sauth: SancTumdleware...protectapiroutesby

Comment rédiger un test de fonctionnalité dans Laravel avec Pest? Comment rédiger un test de fonctionnalité dans Laravel avec Pest? Sep 16, 2025 am 06:12 AM

InstallerPestViacomposerAndInitializeiTinLaravelToSetuptTesting.2.CreAveAvereTUreSTESTSTESTS / FeaturetovateDidingUser Faced Interactions comme HttprequestsSandDatabaseChangeSusingPest's 简洁 Syntax.

Comment utiliser la relation HasManythrough à Laravel? Comment utiliser la relation HasManythrough à Laravel? Sep 17, 2025 am 06:38 AM

AcountrycanaccessalPostStwroughusersusinghasManythrough.forexample, withcountries, utilisateurs, andpostStableSinkedByforeignkeys, theCountryModeldefinesahasManythroughrelationTopostViauser, permettant de permettre de permettre à la netteté de manière

Comment créer une recherche en texte intégral dans Laravel? Comment créer une recherche en texte intégral dans Laravel? Sep 16, 2025 am 03:42 AM

ToImplementfull-textSearchInLaravel, FirstAddafull-TextIndexinthemigration Using $ Table-> fullText (['Title', 'Content']); puis utilisez Where

Comment implémenter l'authentification de l'API avec Laravel Sanctum? Comment implémenter l'authentification de l'API avec Laravel Sanctum? Sep 19, 2025 am 04:08 AM

TOIMPlementAPIAuthentification avec un authentification basée sur les jeunes, l'authentification basée sur la base de YouneedToSetToken sur les aallowsspas, les mobileapps et le premier-partisservicestoseCurelyAccessyourapi.Sanctumprovidealight ApproachbyissUingApitokenShatCan

Comment utiliser les contrôleurs de ressources d'itinéraire à Laravel? Comment utiliser les contrôleurs de ressources d'itinéraire à Laravel? Sep 24, 2025 am 05:05 AM

Laravel Resource Controller traite rapidement les opérations CRUD via Resful Routing, utilise la commande Artisan pour générer des contrôleurs et enregistrer des itinéraires de ressources, et peut créer tous les itinéraires standard dans une seule ligne de code, qui prend en charge la restriction des actions, l'ajout de middleware et le nom de la structure du code.

Comment rédiger une requête SQL brute à Laravel? Comment rédiger une requête SQL brute à Laravel? Sep 24, 2025 am 02:55 AM

Utilisez la façade DB pour exécuter SQL natif, sélectionnez DB :: SELECT, DB :: INSERT, DB :: Update ou DB :: Supprimer en fonction du type de requête et utiliser la liaison des paramètres pour empêcher l'injection SQL; DB :: non préparé peut être utilisé pour les changements structurels; Combiné avec DB :: Raw, les expressions natives peuvent être intégrées dans le constructeur de requête.

See all articles