This commit is contained in:
2023-04-16 19:40:19 +08:00
parent 032a8630fe
commit 902448213e
+10 -2
View File
@@ -16,6 +16,7 @@ use Psr\Container\NotFoundExceptionInterface;
use Psr\Http\Message\RequestInterface; use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;
use Swoole\Http\Request; use Swoole\Http\Request;
use Kiri\Di\Inject\Service;
use Swoole\Http\Response; use Swoole\Http\Response;
use Kiri\Di\Inject\Container; use Kiri\Di\Inject\Container;
use Kiri\Router\Constrict\ConstrictRequest; use Kiri\Router\Constrict\ConstrictRequest;
@@ -59,6 +60,13 @@ class Server implements OnRequestInterface
public EventProvider $provider; public EventProvider $provider;
/**
* @var \Kiri\Router\Request
*/
#[Service('request')]
public RequestInterface $request;
/** /**
* @throws ContainerExceptionInterface * @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface * @throws NotFoundExceptionInterface
@@ -68,7 +76,7 @@ class Server implements OnRequestInterface
{ {
$this->emitter = $this->container->get(HttpResponseEmitter::class); $this->emitter = $this->container->get(HttpResponseEmitter::class);
$exception = Kiri::service()->get('request')->exception; $exception = $this->request->exception;
if (!in_array(ExceptionHandlerInterface::class, class_implements($exception))) { if (!in_array(ExceptionHandlerInterface::class, class_implements($exception))) {
$exception = ExceptionHandlerDispatcher::class; $exception = ExceptionHandlerDispatcher::class;
} }
@@ -91,7 +99,7 @@ class Server implements OnRequestInterface
$dispatcher = $this->router->query($request->server['request_uri'], $request->getMethod()); $dispatcher = $this->router->query($request->server['request_uri'], $request->getMethod());
$middleware = []; $middleware = $this->request->middlewares;
if (!($dispatcher instanceof Kiri\Router\Base\NotFoundController)) { if (!($dispatcher instanceof Kiri\Router\Base\NotFoundController)) {
$middlewareManager = \Kiri::getDi()->get(MiddlewareManager::class); $middlewareManager = \Kiri::getDi()->get(MiddlewareManager::class);