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.
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.
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 中创建中间件,您需要创建一个类并实现 PhalconMvcUserInterface
<?php use Phalcon\Mvc\UserInterface; class ExampleMiddleware implements UserInterface { public function beforeExecuteRoute($dispatcher) { // 在执行路由之前执行此代码 } public function afterExecuteRoute($dispatcher) { // 在执行路由之后执行此代码 } }
<?php $middleware = new ExampleMiddleware(); $app->middleware->add( $middleware, Phalcon\Events\Manager::EVENT_BEFORE_EXECUTE_ROUTE, Phalcon\Events\Manager::PRIORITY_LOW );
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; });
<?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()); } }
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!