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.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

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)

Sujets chauds

Dans Laravel, le routage est le point d'entrée de l'application qui définit la logique de réponse lorsqu'un client demande un URI spécifique. La route mappe l'URL vers le code de traitement correspondant, qui contient généralement des méthodes HTTP, des URI et des actions (fermetures ou méthodes de contr?leur). 1. Structure de base de la définition de l'itinéraire: lier les demandes à l'aide de la route :: verb ('/ uri', action); 2. Prend en charge plusieurs verbes HTTP tels que Get, Post, Put, etc.; 3. Les paramètres dynamiques peuvent être définis via {param} et les données peuvent être passées; 4. Les routes peuvent être nommées pour générer des URL ou des redirections; 5. Utilisez des fonctions de regroupement pour ajouter uniformément les préfixes, les middleware et autres paramètres de partage; 6. Les fichiers de routage sont divisés en web.php, ap en fonction de leur objectif

Inlaravel, Politicys organisationAutorizationLogicFormodelactions.1.PoliciesAreclasseswithMethodsLikeView, Create, Update etdeleTeTeTrueTrueorfalSebaseDonUserperMissions.2.ToregisterApolicy, MaptheModeltOtspolicyInThes.2.

Pour créer de nouveaux enregistrements dans la base de données à l'aide d'éloquente, il existe quatre méthodes principales: 1. Utilisez la méthode de création pour créer rapidement des enregistrements en transmettant le tableau d'attribut, tels que l'utilisateur :: Create (['name' => 'Johndoe', 'email' => 'John@example.com']); 2. Utilisez la méthode de sauvegarde pour instancier manuellement le modèle et attribuer des valeurs pour enregistrer une par une, ce qui convient aux scénarios où une affectation conditionnelle ou une logique supplémentaire est requise; 3. Utilisez FirstOrCreate pour trouver ou créer des enregistrements en fonction des conditions de recherche pour éviter les données en double; 4. Utilisez UpdateorCreate pour trouver des enregistrements et mettre à jour, sinon, créez-les, ce qui convient au traitement des données importées, etc., qui peuvent être répétitives.

Thephpartisandb:seedcommandinLaravelisusedtopopulatethedatabasewithtestordefaultdata.1.Itexecutestherun()methodinseederclasseslocatedin/database/seeders.2.Developerscanrunallseeders,aspecificseederusing--class,ortruncatetablesbeforeseedingwith--trunc

Artisan est un outil de ligne de commande de Laravel pour améliorer l'efficacité du développement. Ses fonctions principales incluent: 1. Générer des structures de code, telles que les contr?leurs, les modèles, etc., et créer automatiquement des fichiers via MADE: Controller et autres commandes; 2. Gérer la migration de la base de données et remplir, utiliser migrer pour exécuter la migration, et db: semences pour remplir les données; 3. Prise en charge des commandes personnalisées, telles que Make: Command Creation Class Command Class pour implémenter l'encapsulation de la logique métier; 4. Fournir des fonctions de débogage et de gestion de l'environnement, telles que la clé: générer pour générer des clés et servir à démarrer le serveur de développement. La ma?trise de l'utilisation de l'artisan peut améliorer considérablement l'efficacité du développement de Laravel.

La définition d'une méthode (également connue sous le nom d'action) dans un contr?leur est de dire à la demande quoi faire lorsque quelqu'un visite une URL spécifique. Ces méthodes traitent généralement les demandes, traitent les données et renvoient des réponses telles que les pages HTML ou JSON. Comprendre la structure de base: la plupart des cadres Web (tels que RubyOnRails, Laravel ou SpringMVC) utilisent des contr?leurs pour regrouper les opérations liées. Les méthodes de chaque contr?leur correspondent généralement à un itinéraire, c'est-à-dire le chemin d'établissement d'URL auquel quelqu'un peut accéder. Par exemple, il peut y avoir les méthodes suivantes dans PostController: 1.Index () - Afficher la liste des postes; 2.Show () - Afficher les messages individuels; 3.Create () - gérer la création de nouveaux messages; 4.U

Oui, YouCaninstallLaravelonanyOperatingSystemByfollowingTheSesteps: 1. InstallphpanDrequedExtensionsLikembstring, OpenSSL etxmlusingToolsLILLOxAmPonWindows, HomebrewonMacos, oraptonlinux; 2.InstallPoser, usinganinstalleronwindowswordrsormialCommandonmacer, usinganinstalleronwindowswordrsormiralcommandonmacer, usinganinstalleronwindowswordrsormiralcommandonmacer, usinganinstalleronwindowswordrsormiralcommandonmacer, usinganinstalleronwindowsterminbcommandonson

ToruntestSinLaravelEffective, uthethPartisantStCommand qui-même sifflifiesphpunisage.1.setupa.env.testingfileandconfigurephpunit.xmltousetestDatabaselikesqlite.2.GenerateTestSusingPartisanMake: Test, using - UnitForUrst.writeTetswithesSanMake: Test, Using - Unitfornits.writeTetswitheswithes
