Maison > développement back-end > tutoriel php > Quel est le principe de mise en œuvre du middleware php

Quel est le principe de mise en œuvre du middleware php

下次还敢
Libérer: 2024-04-26 08:57:18
original
945 Les gens l'ont consulté

Principe de mise en œuvre du middleware PHP : le middleware forme une chaîne, et lorsque la requête atteint l'application, ils traitent la requête dans l'ordre. Chaque middleware peut inspecter, modifier une requête ou renvoyer une réponse. La classe middleware implémente l'interface MiddlewareInterface et définit les méthodes process() et setNext(). La méthode process() traite la requête et la méthode setNext() définit le middleware suivant. La chaîne est démarrée en appelant la méthode process() du premier middleware. L'application est le dernier code de la chaîne à être exécuté.

Quel est le principe de mise en œuvre du middleware php

Comment le middleware PHP est implémenté

Le middleware PHP est un mécanisme populaire permettant d'insérer une logique dans une application avant ou après le traitement des requêtes des clients. Cela fonctionne comme suit :

1. Cycle de vie de la requête

  • Lorsqu'une requête atteint une application PHP, elle passe par une série de middleware.
  • Chaque middleware peut inspecter la requête, la modifier ou renvoyer une réponse.
  • Si un middleware renvoie une réponse, le cycle de vie de la requête se termine et l'exécution ne se poursuivra pas.

2. Classe Middleware

  • La classe middleware implémente l'interface MiddlewareInterface. MiddlewareInterface 接口。
  • 该接口定义了两个方法:process()setNext()

3. process() 方法

  • process() 方法处理请求。
  • 它接收一个 ServerRequestInterface 对象和一个 RequestHandlerInterface 对象。
  • ServerRequestInterface 对象包含有关请求的信息。
  • RequestHandlerInterface 对象是下一个中间件或应用程序的回调函数。
  • process() 方法可以修改请求、返回响应或调用 $handler->handle() 来继续处理。

4. setNext() 方法

  • setNext() 方法设置下一个要执行的中间件。
  • 如果不设置下一个中间件,则请求将继续执行到应用程序。

5. 中间件链

  • 中间件形成一个链,其中每个中间件调用下一个。
  • 应用程序通过调用第一个中间件的 process()
  • Cette interface définit deux méthodes : process() et setNext().

3. La méthode process()

  • La méthode process() traite la requête.
  • Il reçoit un objet ServerRequestInterface et un objet RequestHandlerInterface. L'objet

ServerRequestInterface contient des informations sur la requête. L'objet RequestHandlerInterface est la prochaine fonction de rappel de middleware ou d'application.

La méthode process() peut modifier la requête, renvoyer une réponse ou appeler $handler->handle() pour continuer le traitement.

🎜🎜🎜4. Méthode setNext() 🎜🎜🎜🎜La méthode setNext() définit le prochain middleware à exécuter. 🎜🎜Si le prochain middleware n'est pas défini, la requête se poursuivra vers l'application. 🎜🎜🎜🎜 5. Chaîne Middleware 🎜🎜🎜🎜Le Middleware forme une chaîne où chaque middleware appelle le suivant. 🎜🎜L'application démarre la chaîne en appelant la méthode process() du premier middleware. 🎜🎜🎜🎜6. Application 🎜🎜🎜🎜L'application est le code qui est exécuté après avoir été appelé par tous les middlewares. 🎜🎜Il est généralement responsable du traitement des demandes et du retour des réponses. 🎜🎜🎜🎜Exemple🎜🎜🎜L'exemple suivant montre un middleware PHP simple qui ajoute un en-tête à la requête : 🎜
<code class="php">class AddHeaderMiddleware implements MiddlewareInterface
{
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler)
    {
        $request = $request->withAddedHeader('X-Custom-Header', 'My Value');
        return $handler->handle($request);
    }
}</code>
Copier après la connexion

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal