This commit is contained in:
xl
2024-09-03 14:47:27 +08:00
parent 12a1aac9e5
commit 92dd75b82c
14 changed files with 159 additions and 297 deletions
-6
View File
@@ -3,7 +3,6 @@
namespace Kiri\Server\Abstracts;
use Exception;
use Kiri\Exception\ConfigException;
use Kiri\Exception\NotFindClassException;
use Kiri\Server\Config as SConfig;
use Kiri\Server\Constant;
@@ -12,11 +11,6 @@ use Kiri\Server\Events\OnShutdown;
use Kiri\Server\Handler\OnServer;
use Kiri\Server\ServerInterface;
use Kiri\Server\Task\Task;
use Kiri\Di\Inject\Container;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\ContainerInterface;
use Psr\Container\NotFoundExceptionInterface;
use ReflectionException;
use Swoole\Server;
use Symfony\Component\Console\Output\OutputInterface;
+1 -3
View File
@@ -4,14 +4,12 @@ namespace Kiri\Server\Abstracts;
use Exception;
use Kiri;
use Kiri\Di\Inject\Container;
use Psr\Log\LoggerInterface;
use Swoole\Http\Server as HServer;
use Swoole\Process;
use Swoole\Server;
use Kiri\Server\Processes\BaseProcess;
use Kiri\Server\Constant;
use Kiri\Server\Config;
use Kiri\Error\StdoutLogger;
use Swoole\WebSocket\Server as WServer;
trait TraitServer
-2
View File
@@ -2,9 +2,7 @@
namespace Kiri\Server\Events;
use Kiri\Exception\ConfigException;
use Swoole\Server;
use Kiri;
/**
*
-1
View File
@@ -2,7 +2,6 @@
namespace Kiri\Server\Handler;
use Exception;
use Kiri\Server\Abstracts\Server;
use Kiri\Server\Contract\OnPipeMessageInterface;
-112
View File
@@ -1,112 +0,0 @@
<?php
declare(strict_types=1);
namespace Kiri\Server\Handler;
use Exception;
use Kiri\Di\Inject\Container;
use Kiri\Di\Context;
use Kiri\Di\Interface\ResponseEmitterInterface;
use Kiri\Router\Base\ExceptionHandlerDispatcher;
use Kiri\Router\Constrict\ConstrictRequest as CQ;
use Kiri\Router\Constrict\ConstrictResponse;
use Kiri\Router\DataGrip;
use Kiri\Router\Interface\ExceptionHandlerInterface;
use Kiri\Router\Interface\OnRequestInterface;
use Kiri\Router\RouterCollector;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\ContainerInterface;
use Psr\Container\NotFoundExceptionInterface;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use ReflectionException;
use Swoole\Http\Request;
use Swoole\Http\Response;
use Throwable;
/**
* OnRequest event
*/
class OnRequest implements OnRequestInterface
{
/**
* @var RouterCollector
*/
public RouterCollector $router;
/**
* @var ExceptionHandlerInterface
*/
public ExceptionHandlerInterface $exception;
/**
* @var ResponseEmitterInterface
*/
public ResponseEmitterInterface $responseEmitter;
/**
* @var ConstrictResponse
*/
#[Container(ConstrictResponse::class)]
public ConstrictResponse $constrictResponse;
/**
* @param ResponseInterface $response
* @param ContainerInterface $container
* @param DataGrip $dataGrip
* @throws
*/
public function __construct(public ResponseInterface $response, DataGrip $dataGrip)
{
$this->responseEmitter = $this->response->emmit;
$exception = \config('exception.http');
if (!in_array(ExceptionHandlerInterface::class, class_implements($exception))) {
$exception = ExceptionHandlerDispatcher::class;
}
$this->exception = \Kiri::getDi()->get($exception);
$this->router = $dataGrip->get(ROUTER_TYPE_HTTP);
}
/**
* @param Request $request
* @param Response $response
* @throws
*/
public function onRequest(Request $request, Response $response): void
{
/** @var CQ $PsrRequest */
try {
$PsrRequest = $this->initRequestAndResponse($request);
$PsrResponse = $this->router->query($request->server['path_info'], $request->getMethod())
->run($PsrRequest);
} catch (Throwable $throwable) {
$PsrResponse = $this->exception->emit($throwable, $this->constrictResponse);
} finally {
$this->responseEmitter->response($PsrResponse, $response, $PsrRequest);
}
}
/**
* @param Request $request
* @return ServerRequestInterface
*/
public function initRequestAndResponse(Request $request): ServerRequestInterface
{
$response = new ConstrictResponse($this->response->contentType);
Context::set(ResponseInterface::class, $response);
return Context::set(RequestInterface::class, CQ::builder($request));
}
}
-1
View File
@@ -6,7 +6,6 @@ use Kiri;
use Kiri\Di\Inject\Container;
use Kiri\Error\StdoutLogger;
use Psr\Log\LoggerInterface;
use ReflectionException;
use Kiri\Server\Abstracts\Server;
use Kiri\Server\Events\OnBeforeShutdown;
use Kiri\Server\Events\OnShutdown;
-1
View File
@@ -3,7 +3,6 @@
namespace Kiri\Server\Handler;
use Kiri;
use ReflectionException;
use Kiri\Server\Abstracts\Server;
use Kiri\Server\Events\OnManagerStart;
use Kiri\Server\Events\OnManagerStop;
-1
View File
@@ -13,7 +13,6 @@ use Kiri\Server\Events\OnWorkerExit;
use Kiri\Server\Events\OnWorkerStart;
use Kiri\Server\Events\OnWorkerStop;
use Swoole\Server;
use Kiri\Di\Inject\Container;
use Swoole\Timer;
use Throwable;
use function config;
+1 -1
View File
@@ -5,8 +5,8 @@ namespace Kiri\Server;
use Kiri\Di\Context;
use Kiri\Router\Router;
use Kiri\Server\Abstracts\BaseProcess;
use Kiri\Server\Events\OnWorkerStart;
use Kiri\Server\Processes\BaseProcess;
use Swoole\Coroutine;
use Swoole\Event;
use Swoole\Process;
@@ -1,14 +1,9 @@
<?php
namespace Kiri\Server\Abstracts;
namespace Kiri\Server\Processes;
use Kiri\Di\Context;
use Kiri\Di\Inject\Container;
use Kiri\Error\StdoutLogger;
use Kiri\Server\Contract\OnProcessInterface;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
use Swoole\Coroutine;
/**
@@ -1,7 +1,7 @@
<?php
namespace Kiri\Server\Contract;
namespace Kiri\Server\Processes;
use Swoole\Process;
-1
View File
@@ -10,7 +10,6 @@ use Kiri\Events\EventDispatch;
use Kiri\Router\Router;
use Kiri\Server\Abstracts\AsyncServer;
use Kiri\Server\Events\OnShutdown;
use ReflectionException;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
-5
View File
@@ -5,13 +5,8 @@ namespace Kiri\Server\Task;
use Kiri;
use Kiri\Router\Base\ExceptionHandlerDispatcher;
use Kiri\Router\DataGrip;
use Kiri\Router\Interface\ExceptionHandlerInterface;
use Kiri\Server\Constant;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\ContainerInterface;
use Psr\Container\NotFoundExceptionInterface;
use Psr\Http\Message\ResponseInterface;
use Swoole\Server;
/**
-1
View File
@@ -2,7 +2,6 @@
namespace Kiri\Server\Task;
use Kiri\Di\Inject\Container;
use Kiri\Server\ServerInterface;
class TaskExecute implements TaskInterface