Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Panduan praktikal untuk perisian tengah untuk Slim dan Phalcon

Panduan praktikal untuk perisian tengah untuk Slim dan Phalcon

WBOY
WBOYasal
2024-06-01 15:59:031127semak imbas

Panduan untuk menggunakan middleware dalam Slim dan Phalcon: Slim: Menggunakan komponen slim/middleware, cipta fungsi middleware tersuai yang mengesahkan bahawa pengguna telah log masuk dan mengubah hala atau meneruskan pelaksanaan berdasarkan hasil. Phalcon: Buat kelas middleware yang melaksanakan antara muka PhalconMvcUserInterface, dan tentukan kod dalam kelas yang akan dilaksanakan sebelum dan selepas laluan dilaksanakan, dan kemudian daftarkan middleware dalam aplikasi. Contoh praktikal: Dalam Slim, cipta perisian tengah untuk cache respons API, dan dalam Phalcon, cipta perisian tengah untuk merekodkan log permintaan.

Panduan praktikal untuk perisian tengah untuk Slim dan Phalcon

Panduan Praktikal untuk Middleware dengan Slim dan Phalcon

Dalam pembangunan web moden, middleware ialah teknologi popular untuk melaksanakan kod tersuai sebelum atau selepas aplikasi mengendalikan permintaan HTTP dan menjana respons. Dengan menggunakan perisian tengah, anda boleh melaksanakan pelbagai operasi seperti pengesahan, caching, pengelogan dan pengendalian pengecualian.

Dalam PHP, Slim dan Phalcon ialah dua rangka kerja popular yang memberikan sokongan kuat untuk perisian tengah. Artikel ini akan menyediakan panduan praktikal tentang cara menggunakan perisian tengah dalam kedua-dua rangka kerja.

Slim

Dalam Slim, middleware boleh ditambah dengan mudah menggunakan komponen slim/middleware. Untuk memasangnya: 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)
    {
        // 在执行路由之后执行此代码
    }
}

Berikut ialah contoh perisian tengah pengesahan mudah:

<?php

$middleware = new ExampleMiddleware();

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

Phalcon

Phalcon mempunyai sokongan perisian tengah di luar kotak. Untuk mencipta middleware dalam Phalcon, anda perlu mencipta kelas dan melaksanakan antara muka 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;
});

Kemudian, anda boleh mendaftarkan middleware dengan aplikasi anda:

<?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());
    }
}

Contoh praktikal 🎜🎜Menggunakan caching Slim Respons API🎜rrreee🎜Gunakan Phalcon untuk merekod log permintaan🎜rrreee

Atas ialah kandungan terperinci Panduan praktikal untuk perisian tengah untuk Slim dan Phalcon. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn