Maison  >  Article  >  développement back-end  >  Un guide pratique du middleware pour Slim et Phalcon

Un guide pratique du middleware pour Slim et Phalcon

WBOY
WBOYoriginal
2024-06-01 15:59:031128parcourir

Guide d'utilisation du middleware dans Slim et Phalcon : Slim : à l'aide du composant slim/middleware, créez une fonction middleware personnalisée qui vérifie que l'utilisateur est connecté et redirige ou continue l'exécution en fonction du résultat. Phalcon : créez une classe middleware qui implémente l'interface PhalconMvcUserInterface et définissez le code de la classe à exécuter avant et après l'exécution de la route, puis enregistrez le middleware dans l'application. Exemple pratique : dans Slim, créez un middleware pour mettre en cache les réponses de l'API, et dans Phalcon, créez un middleware pour enregistrer les journaux de requêtes.

Un guide pratique du middleware pour Slim et Phalcon

Un guide pratique du middleware avec Slim et Phalcon

Dans le développement Web moderne, le middleware est une technologie populaire pour exécuter du code personnalisé avant ou après qu'une application traite les requêtes HTTP et génère des réponses. En utilisant un middleware, vous pouvez implémenter diverses opérations telles que l'authentification, la mise en cache, la journalisation et la gestion des exceptions.

En PHP, Slim et Phalcon sont deux frameworks populaires qui offrent un solide support pour le middleware. Cet article fournira un guide pratique sur la façon d'utiliser le middleware dans les deux frameworks.

Slim

Dans Slim, un middleware peut être facilement ajouté à l'aide du composant slim/middleware. Pour l'installer : slim/middleware 组件轻松添加。要安装它:

composer require slim/middleware

以下是一个简单的身份验证中间件示例:

<?php

$app->add(function ($request, $response, $next) {
    // 验证用户是否已登录
    if (!isset($_SESSION['user_id'])) {
        return $response->withRedirect('/');
    }

    // 继续执行下一个中间件
    return $next($request, $response);
});

Phalcon

Phalcon 具有开箱即用的中间件支持。要在 Phalcon 中创建中间件,您需要创建一个类并实现 PhalconMvcUserInterface

<?php

use Phalcon\Mvc\UserInterface;

class ExampleMiddleware implements UserInterface
{
    public function beforeExecuteRoute($dispatcher)
    {
        // 在执行路由之前执行此代码
    }

    public function afterExecuteRoute($dispatcher)
    {
        // 在执行路由之后执行此代码
    }
}

Voici un exemple simple de middleware d'authentification :

<?php

$middleware = new ExampleMiddleware();

$app->middleware->add(
    $middleware,
    Phalcon\Events\Manager::EVENT_BEFORE_EXECUTE_ROUTE,
    Phalcon\Events\Manager::PRIORITY_LOW
);

Phalcon

Phalcon dispose d'un support middleware prêt à l'emploi. Pour créer un middleware dans Phalcon, vous devez créer une classe et implémenter l'interface PhalconMvcUserInterface :

<?php

$app->add(function ($request, $response, $next) {
    $cacheKey = 'api_response_' . $request->getUri()->getPath();
    $response = $cache->get($cacheKey);

    if (!$response) {
        $response = $next($request, $response);
        $cache->set($cacheKey, $response, 3600); // 缓存 1 小时
    }

    return $response;
});

Ensuite, vous pouvez enregistrer le middleware avec votre application :

<?php

use Phalcon\Logger;
use Phalcon\Mvc\UserInterface;

class LoggerMiddleware implements UserInterface
{
    private $logger;

    public function __construct(Logger $logger)
    {
        $this->logger = $logger;
    }

    public function beforeExecuteRoute($dispatcher)
    {
        $this->logger->info('Request: ' . $dispatcher->getActionName() . ' - ' . $dispatcher->getParams());
    }
}

Un exemple pratique 🎜🎜Utilisation de l'API de mise en cache Slim réponse🎜rrreee🎜Utilisez Phalcon pour enregistrer le journal des demandes🎜rrreee

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