Maison  >  Article  >  cadre php  >  Le principe de fonctionnement de base du middleware dans le modèle de conception de pipeline dans le framework Laravel

Le principe de fonctionnement de base du middleware dans le modèle de conception de pipeline dans le framework Laravel

不言
不言original
2018-07-31 10:07:593462parcourir

Le modèle de conception du pipeline dans le framework laravel est que les données sont transférées vers le pipeline pour être traitées, puis passées à l'étape suivante. Examinons ensuite la conception du pipeline dans le. Framework laravel Le principe de fonctionnement de base du middleware de modèles.

Le modèle de conception de pipeline consiste à transmettre des données à une séquence de tâches. Le pipeline joue le rôle de chaîne d'assemblage, où les données sont traitées puis transmises à l'étape suivante.

L'utilisation de pipelines présente de nombreux avantages, en particulier lors de l'écriture de code de traitement complexe en une seule tâche. Les pipelines nous offrent une grande commodité et les tâches d'étape peuvent être facilement ajoutées, supprimées ou remplacées dans le pipeline.

Laravel utilise le modèle de conception Pipeline à de nombreux endroits du framework, ce qui signifie que tous les endroits où nous devons implémenter le modèle de conception de pipeline font déjà partie de l'application sous-jacente.

Nous pouvons créer nos propres fonctionnalités au-dessus du framework en utilisant les composants internes de Laravel. Dans le didacticiel d'aujourd'hui, nous discuterons du modèle de conception de pipeline et de la manière d'utiliser les pipelines internes de Laravel.

Quel est le modèle de conception du pipeline ?

Le modèle de pipeline est utilisé pour décomposer des processus complexes en plusieurs sous-tâches indépendantes. Chaque tâche indépendante est réutilisable, ces tâches peuvent donc être combinées en processus complexes.

Ce mode vous permet de diviser un énorme processus en sous-tâches plus petites, qui traitent les données et transmettent les résultats traités à la sous-tâche suivante. Tout comme une chaîne de montage, elle est ordonnée et complète, depuis la transformation des matières premières jusqu'au produit fini.

Chaque tâche du pipeline acceptera et renverra le même type de données, de sorte que les sous-tâches peuvent être ajoutées, supprimées ou remplacées dans le pipeline sans affecter les autres sous-tâches.

Si vous êtes familier avec les systèmes Unix, vous connaissez peut-être les pipes, car nous utilisons souvent des commandes pipe dans les commandes shell, par exemple :

cat helloworld.txt | grep "hello world" | rev | > output.txt

Dans cet exemple, nous lisons le contenu du fichier, interrogez-le pour la chaîne "hello world", inversez la chaîne et enfin ajoutez-la au fichier output.txt.

Comment utiliser le mode pipeline dans Laravel ?

Laravel utilise le modèle de conception de pipeline à de nombreux endroits du framework, le plus courant étant l'implémentation du middleware.

Lorsque la requête atteint enfin l'action du contrôleur et est traitée, elle passe d'abord par une série de middleware. Chaque intermédiaire a une responsabilité indépendante, comme la configuration des cookies, la détermination de l'opportunité de se connecter et la prévention des attaques CSRF, etc.

La requête sera traitée à chaque étape. Si la requête réussit, elle sera passée au traitement suivant. Si elle échoue, la réponse HTTP correspondante sera renvoyée.

Ce mécanisme nous permet d'ajouter facilement des traitements avant que la requête n'atteigne finalement le code de l'application. Bien entendu, si ce traitement n'est pas nécessaire, vous pouvez également le supprimer à tout moment sans affecter le cycle de vie. de la demande.

Avantages du mode pipeline

Le mode pipeline présente de nombreux avantages :

Premièrement, il décompose les flux de traitement complexes en sous-tâches indépendantes, ce qui le rend pratique Testez chaque sous-tâche ;

Deuxièmement, les sous-tâches décomposées peuvent être réutilisées par différents processus de traitement pour éviter la redondance du code.

Enfin, ajouter, supprimer et remplacer des sous-tâches dans des processus complexes est très simple, sans aucun impact sur les processus existants.

Inconvénients du mode pipeline

Bien entendu, le mode pipeline présente également des inconvénients :

Bien que chaque sous-tâche devienne plus simple, lorsque vous essayez encore une fois, il existe un certain degré de complexité lorsque ces sous-tâches sont combinées en un processus complet

De plus, vous devez également vous assurer que le processus global peut fonctionner normalement après la réussite des tests de sous-tâches indépendants, ce qui a un certain degré d'incertitude.

Enfin, quand tout ce que vous voyez est une sous-tâche, cela rend difficile la compréhension du processus global (l'histoire de l'aveugle et de l'éléphant doit être familière à tout le monde, et c'est pourquoi).

Comment utiliser le pipeline de Laravel

L'utilisation du pipeline fourni par Laravel est très simple. Tout d'abord, vous devez créer un nouvel objet IlluminatePipelinePipeline et l'injecter dans une instance de. IlluminateContractsContainerContainer. :

$pipeline = app('Illuminate\Pipeline\Pipeline');

Envoyez ensuite l'objet que vous souhaitez transmettre à ce canal :

$pipeline->send($request);

Ensuite, transmettez-le au tableau de tâches qui accepte et gère la demande :

$pipeline->through($middleware);

Enfin, exécutez la tâche pipeline et écrivez le traitement de rappel :

$pipeline->then(function ($request) {
    // Do something
});

Voici le principe de fonctionnement de base du middleware : recevoir des requêtes HTTP, laisser les requêtes passer par le middleware de routage défini, et enfin atteindre la destination.

Conclusion

Le modèle de conception de pipeline est très utile. Le middleware n'est qu'un exemple spécial qui utilise pleinement ce modèle de conception dans le cadre sous-jacent. vous pouvez également utiliser le pipeline fourni par Laravel dans votre propre projet.

Ce qui précède représente l'intégralité du contenu de cet article, veuillez faire attention au tutoriel laravel pour en savoir plus !

Articles connexes recommandés :

Configuration de l'environnement Laravel : étapes pour déployer Laravel sur Alibaba Cloud ou Tencent Cloud

Recommandations de cours connexes :

Les cinq dernières vidéos Laravel dans Recommandation du tutoriel 2017

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