This commit is contained in:
2025-12-17 21:11:49 +08:00
parent 153667f0b4
commit 804b9bd67f
2 changed files with 461 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
<?php
declare(strict_types=1);
namespace Kiri\Router\Base;
use Kiri\Router\Session;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
/**
* Session 中间件
* 自动启动和保存 Session
*/
class SessionMiddleware implements MiddlewareInterface
{
/**
* @param ServerRequestInterface $request
* @param RequestHandlerInterface $handler
* @return ResponseInterface
* @throws
*/
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
// 启动 Session
Session::start($request);
try {
// 处理请求
$response = $handler->handle($request);
// 保存 Session
Session::save();
return $response;
} catch (\Throwable $e) {
// 即使出错也保存 Session
Session::save();
throw $e;
}
}
}