Appliquer un middleware global ou en groupe à Laravel
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é.
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é.

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.

Pour enregistrer un middleware mondial:
- Ouvrir
app/Http/Kernel.php
- Ajoutez votre nom de classe middleware dans le tableau
$middleware
Par exemple:

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:
- Ouvrir
app/Http/Kernel.php
- Trouver
$middlewareGroups
Array - 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. dansweb
. - 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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

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

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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

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

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

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

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

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

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.

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.
