ホームページ >バックエンド開発 >PHPチュートリアル >Slim および Phalcon 用ミドルウェアの実践的なガイド
Slim および Phalcon でのミドルウェアの使用ガイド: Slim: Slim/ミドルウェア コンポーネントを使用して、ユーザーがログインしていることを確認し、結果に基づいてリダイレクトまたは実行を継続するカスタム ミドルウェア関数を作成します。 Phalcon: PhalconMvcUserInterfaceインターフェースを実装したミドルウェアクラスを作成し、ルート実行前後に実行するコードをクラスに定義し、アプリケーションにミドルウェアを登録します。実践例: Slim では API レスポンスをキャッシュするミドルウェアを作成し、Phalcon ではリクエスト ログを記録するミドルウェアを作成します。
現代の Web 開発では、ミドルウェアは、アプリケーションが HTTP リクエストを処理して応答を生成する前または後にカスタム コードを実行するための一般的なテクノロジです。ミドルウェアを使用することで、認証、キャッシュ、ロギング、例外処理などのさまざまな操作を実装できます。
PHP では、Slim と Phalcon がミドルウェアの強力なサポートを提供する 2 つの人気のあるフレームワークです。この記事では、両方のフレームワークでミドルウェアを使用する方法に関する実践的なガイドを提供します。
Slim では、slim/middleware
コンポーネントを使用してミドルウェアを簡単に追加できます。インストールするには: 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 );PhalconPhalcon には、すぐに使えるミドルウェア サポートがあります。 Phalcon でミドルウェアを作成するには、クラスを作成し、
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()); } }
以上がSlim および Phalcon 用ミドルウェアの実践的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。