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

Panduan praktikal untuk perisian tengah untuk Slim dan Phalcon

WBOY
Lepaskan: 2024-06-01 15:59:03
asal
1194 orang telah melayarinya

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
Salin selepas log masuk

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

<?php

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

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

Phalcon

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

<?php

use Phalcon\Mvc\UserInterface;

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

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

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
);
Salin selepas log masuk

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;
});
Salin selepas log masuk

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());
    }
}
Salin selepas log masuk
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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan