Aperçu:
En tant que cadre PHP populaire, CakePHP est largement utilisé dans le développement d'applications Web. Il fournit une multitude d'outils et de fonctionnalités, parmi lesquels le mécanisme du middleware est particulièrement important. Le middleware nous aide non seulement rapidement à créer des applications Web, mais améliore également considérablement la lisibilité et la maintenabilité de notre code.
Le middleware est une série d'opérations effectuées avant ou après une demande est distribuée au contrôleur. Il peut entreprendre des tâches telles que l'authentification, l'autorisation, la mise en cache, l'exploitation forestière, etc. Le middleware est conçu avec une prise en charge flexible pour la personnalisation en fonction des différents besoins et améliorer l'évolutivité de l'application.
CakePHP fournit une file d'attente middleware par défaut, qui peut être gérée dans la méthode du middleware dans le fichier src / application.php . Nous pouvons ajouter, supprimer ou ajuster l'ordre d'exécution du middleware dans cette méthode.
// src/Middleware/CustomMiddleware.php
namespace App\Middleware;
<p>use Psr\Http\Message\ResponseInterface;<br>
use Psr\Http\Message\ServerRequestInterface;<br>
use Psr\Http\Server\RequestHandlerInterface;<br>
use Psr\Http\Server\MiddlewareInterface;<br>
use Cake\Log\Log;</p>
<p>class CustomMiddleware implements MiddlewareInterface<br>
{<br>
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface<br>
{<br>
// Opérations avant l'exécution du contrôleur<br>
Log::info('CustomMiddleware - Before Controller');</p>
<pre class="overflow-visible!"> $response = $handler->handle($request);
// Opération après l'exécution du contrôleur
Log::info('CustomMiddleware - After Controller');
return $response;
}
}
Le code ci-dessus affiche une classe appelée CustomMiddleware , qui implémente MiddlewareInterface . Dans la méthode de processus , nous ajoutons les opérations de journalisation avant et après le contrôleur.
Pour activer le middleware, vous devez ajouter la configuration suivante à la méthode middleware du fichier src / application.php :
public function middleware($middlewareQueue)
{
// Ajouter un middleware personnalisé
$middlewareQueue->add(new \App\Middleware\CustomMiddleware());
return $middlewareQueue;
}
De cette façon, chaque fois que vous demandez, le middleware personnalisé sera déclenché et l'opération correspondante sera effectuée. Vous pouvez également créer plus de middleware en fonction de vos besoins et les ajouter dans cette méthode.
En utilisant le mécanisme du middleware de CakePHP, il peut facilement implémenter des fonctions telles que l'authentification, l'autorisation et la journalisation, améliorant ainsi l'évolutivité et la maintenance des applications Web. Juste une petite quantité de code pour créer une application PHP bien structurée et puissante.