在 Slim 和 Phalcon 中使用中間件指南:Slim: 使用 slim/middleware 元件,建立一個自訂中間件函數,驗證使用者是否已登錄,並根據結果重定向或繼續執行。 Phalcon: 建立一個實作 Phalcon\Mvc\UserInterface 介面的中間件類,並在類別中定義在路由執行之前和之後執行的程式碼,然後在應用程式中註冊中間件。實戰範例: 在 Slim 中,建立中間件來快取 API 回應,在 Phalcon 中,建立中間件來記錄請求日誌。
在現代Web 開發中,中間件是一種流行的技術,用於在應用程式處理HTTP 請求和產生回應之前或之後執行自訂程式碼。透過使用中間件,您可以實現各種操作,例如身份驗證、快取、日誌記錄和異常處理。
在 PHP 中,Slim 和 Phalcon 是兩個流行的框架,提供了對中間件的強大支援。本文將提供一個實戰指南,說明如何在這兩個框架中使用中間件。
在 Slim 中,中介軟體可以使用 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\Mvc\UserInterface
介面:
<?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 );
<?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中文網其他相關文章!