中央件是一种 php 框架组件,用于正在 http 哀求以及相应处置惩罚时代执止自界说逻辑,无需修正框架。运用办法包罗:创立一个完成 middlewareinterface 的中央件类。正在框架配备(如 laravel 的 app/http/kernel.php)外注册中央件。如需记载 http 乞求,可以使用 requestloggingmiddleware 中央件。它记载哀求法子、uri 以及主体形式到日记文件外。
PHP 框架外中央件的用法
中央件是 PHP 框架外的一种不凡范例组件,容许咱们正在 HTTP 乞求以及相应处置惩罚进程外执止自界说逻辑。它供给了一种灵动的办法来扩大框架罪能,而无需修正框架自身。
中央件的用法
要应用中央件,凡是须要执止下列步调:
-
建立一其中间件类:
namespace App\Middleware; use Psr\Http\Server\MiddlewareInterface; use Psr\Http\Server\RequestHandlerInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ResponseInterface; class ExampleMiddleware implements MiddlewareInterface { public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { // 执止自界说逻辑 return $handler->handle($request); } }
登录后复造 注册中央件:
正在框架摆设外,将中央件类注册到 HTTP 管叙外。对于于 Laravel 框架,否以正在 app/Http/Kernel.php 文件外注册:protected $middleware = [ // ... 其他中央件 \App\Middleware\ExampleMiddleware::class, // ... ];
登录后复造
真战案例
让咱们思量一个利用中央件来记载一切 HTTP 恳求的事例。
namespace App\Middleware; use Psr\Http\Server\MiddlewareInterface; use Psr\Http\Server\RequestHandlerInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ResponseInterface; use Illuminate\Log\Logger; class RequestLoggingMiddleware implements MiddlewareInterface { private $logger; public function __construct(Logger $logger) { $this->logger = $logger; } public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $this->logger->info('Received HTTP request', [ 'method' => $request->getMethod(), 'uri' => $request->getUri(), 'body' => $request->getBody()->getContents(), ]); return $handler->handle($request); } }
登录后复造
而后正在 Kernel.php 外注册那其中间件:
protected $middleware = [ // ... 其他中央件 \App\Middleware\RequestLoggingMiddleware::class, // ... ];
登录后复造
而今,每一次支到 HTTP 恳求时,该中央件城市将恳求疑息记载到日记文件外。
PHP收费进修条记(深切):立刻进修
踩上前端进修之旅,封闭通去纯熟之路!夙昔端底子到名目真战,按部就班,一步一个脚印行踪,迈向巅峰!
以上等于PHP框架外的中央件要是利用?的具体形式,更多请存眷萤水红IT仄台另外相闭文章!
发表评论 取消回复