eee
This commit is contained in:
+5
-33
@@ -5,50 +5,23 @@ namespace Kiri\Router\Base;
|
|||||||
|
|
||||||
|
|
||||||
use Kiri;
|
use Kiri;
|
||||||
use Kiri\Router\Response;
|
|
||||||
use Kiri\Router\Request;
|
use Kiri\Router\Request;
|
||||||
use Psr\Container\ContainerInterface;
|
use Psr\Container\ContainerInterface;
|
||||||
use Psr\Log\LoggerInterface;
|
|
||||||
use Psr\Http\Message\RequestInterface;
|
use Psr\Http\Message\RequestInterface;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Kiri\Di\Inject\Container;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class WebController
|
* Class WebController
|
||||||
* @package Kiri\Web
|
* @package Kiri\Web
|
||||||
|
* @property RequestInterface $request
|
||||||
|
* @property ResponseInterface $response
|
||||||
|
* @property ContainerInterface $container
|
||||||
|
* @property Kiri\Error\StdoutLogger $logger
|
||||||
*/
|
*/
|
||||||
abstract class Controller
|
class Controller extends Kiri\Abstracts\Component
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var Request
|
|
||||||
*/
|
|
||||||
#[Container(RequestInterface::class)]
|
|
||||||
public RequestInterface $request;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var Response
|
|
||||||
*/
|
|
||||||
#[Container(ResponseInterface::class)]
|
|
||||||
public ResponseInterface $response;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var ContainerInterface
|
|
||||||
*/
|
|
||||||
#[Container(ContainerInterface::class)]
|
|
||||||
public ContainerInterface $container;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var Kiri\Error\StdoutLogger
|
|
||||||
*/
|
|
||||||
#[Container(LoggerInterface::class)]
|
|
||||||
public Kiri\Error\StdoutLogger $logger;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @return true
|
* @return true
|
||||||
@@ -57,5 +30,4 @@ abstract class Controller
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,14 +18,6 @@ use Psr\Http\Server\RequestHandlerInterface;
|
|||||||
class CoreMiddleware implements MiddlewareInterface
|
class CoreMiddleware implements MiddlewareInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var Response
|
|
||||||
*/
|
|
||||||
#[Container(ResponseInterface::class)]
|
|
||||||
public ResponseInterface $response;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @param RequestHandlerInterface $handler
|
* @param RequestHandlerInterface $handler
|
||||||
@@ -34,7 +26,8 @@ class CoreMiddleware implements MiddlewareInterface
|
|||||||
*/
|
*/
|
||||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||||
{
|
{
|
||||||
$this->response->withHeaders(['Access-Control-Allow-Headers' => '*', 'Access-Control-Request-Method' => '*', 'Access-Control-Allow-Origin' => '*']);
|
$response = \Kiri::getDi()->get(ResponseInterface::class);
|
||||||
|
$response->withHeaders(['Access-Control-Allow-Headers' => '*', 'Access-Control-Request-Method' => '*', 'Access-Control-Allow-Origin' => '*']);
|
||||||
return $handler->handle($request);
|
return $handler->handle($request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+21
-3
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||||||
namespace Kiri\Router\Base;
|
namespace Kiri\Router\Base;
|
||||||
|
|
||||||
use Kiri;
|
use Kiri;
|
||||||
|
use Kiri\Router\Validator\Validator;
|
||||||
|
|
||||||
class Middleware
|
class Middleware
|
||||||
{
|
{
|
||||||
@@ -12,12 +13,11 @@ class Middleware
|
|||||||
/**
|
/**
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected static array $manager = [];
|
|
||||||
|
|
||||||
|
|
||||||
protected static array $mapping = [];
|
protected static array $mapping = [];
|
||||||
|
|
||||||
|
|
||||||
|
protected static array $validators = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $className
|
* @param string $className
|
||||||
* @param string $method
|
* @param string $method
|
||||||
@@ -47,4 +47,22 @@ class Middleware
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $path
|
||||||
|
* @param array $validators
|
||||||
|
*/
|
||||||
|
public static function setValidator(string $path, array $validators): void
|
||||||
|
{
|
||||||
|
self::$validators[$path] = $validators;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $path
|
||||||
|
* @return Validator|null
|
||||||
|
*/
|
||||||
|
public static function getValidator(string $path): ?Validator
|
||||||
|
{
|
||||||
|
return static::$validators[$path] ?? null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,14 +20,6 @@ class ControllerInterpreter
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param ContainerInterface $container
|
|
||||||
*/
|
|
||||||
public function __construct(public ContainerInterface $container)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param object $class
|
* @param object $class
|
||||||
* @param string|ReflectionMethod $method
|
* @param string|ReflectionMethod $method
|
||||||
@@ -38,7 +30,7 @@ class ControllerInterpreter
|
|||||||
public function addRouteByString(object $class, string|ReflectionMethod $method, ?ReflectionClass $reflection = null): Handler
|
public function addRouteByString(object $class, string|ReflectionMethod $method, ?ReflectionClass $reflection = null): Handler
|
||||||
{
|
{
|
||||||
if (is_null($reflection)) {
|
if (is_null($reflection)) {
|
||||||
$reflection = $this->container->getReflectionClass($class::class);
|
$reflection = Kiri::getDi()->getReflectionClass($class::class);
|
||||||
}
|
}
|
||||||
return $this->resolveMethod($class, $method, $reflection);
|
return $this->resolveMethod($class, $method, $reflection);
|
||||||
}
|
}
|
||||||
@@ -71,7 +63,7 @@ class ControllerInterpreter
|
|||||||
public function addRouteByObject(object $class, string|ReflectionMethod $method, ?ReflectionClass $reflection = null): Handler
|
public function addRouteByObject(object $class, string|ReflectionMethod $method, ?ReflectionClass $reflection = null): Handler
|
||||||
{
|
{
|
||||||
if (is_null($reflection)) {
|
if (is_null($reflection)) {
|
||||||
$reflection = $this->container->getReflectionClass($class::class);
|
$reflection = Kiri::getDi()->getReflectionClass($class::class);
|
||||||
}
|
}
|
||||||
return $this->resolveMethod($class, $method, $reflection);
|
return $this->resolveMethod($class, $method, $reflection);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,21 +9,13 @@ use Psr\Http\Message\ResponseInterface;
|
|||||||
class ArrayFormat implements IFormat
|
class ArrayFormat implements IFormat
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var ResponseInterface
|
|
||||||
*/
|
|
||||||
#[Container(ResponseInterface::class)]
|
|
||||||
public ResponseInterface $response;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $result
|
* @param $result
|
||||||
* @return ResponseInterface
|
* @return ResponseInterface
|
||||||
*/
|
*/
|
||||||
public function call($result): ResponseInterface
|
public function call($result): ResponseInterface
|
||||||
{
|
{
|
||||||
return $this->response->withBody(new Stream(json_encode($result, JSON_UNESCAPED_UNICODE)));
|
return di(ResponseInterface::class)->withBody(new Stream(json_encode($result, JSON_UNESCAPED_UNICODE)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,22 +2,13 @@
|
|||||||
|
|
||||||
namespace Kiri\Router\Format;
|
namespace Kiri\Router\Format;
|
||||||
|
|
||||||
use Kiri\Di\Inject\Container;
|
use Kiri;
|
||||||
use Kiri\Router\Constrict\Stream;
|
use Kiri\Router\Constrict\Stream;
|
||||||
use Kiri\Router\ContentType;
|
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
|
|
||||||
class MixedFormat implements IFormat
|
class MixedFormat implements IFormat
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var ResponseInterface
|
|
||||||
*/
|
|
||||||
#[Container(ResponseInterface::class)]
|
|
||||||
public ResponseInterface $response;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param mixed $result
|
* @param mixed $result
|
||||||
* @return ResponseInterface
|
* @return ResponseInterface
|
||||||
@@ -27,13 +18,14 @@ class MixedFormat implements IFormat
|
|||||||
if ($result instanceof ResponseInterface) {
|
if ($result instanceof ResponseInterface) {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
$response = Kiri::getDi()->get(ResponseInterface::class);
|
||||||
if (is_object($result)) {
|
if (is_object($result)) {
|
||||||
return $this->response->withBody(new Stream('[object]'));
|
return $response->withBody(new Stream('[object]'));
|
||||||
}
|
}
|
||||||
if (is_array($result)) {
|
if (is_array($result)) {
|
||||||
return $this->response->withBody(new Stream(json_encode($result, JSON_UNESCAPED_UNICODE)));
|
return $response->withBody(new Stream(json_encode($result, JSON_UNESCAPED_UNICODE)));
|
||||||
} else {
|
} else {
|
||||||
return $this->response->withBody(new Stream((string)$result));
|
return $response->withBody(new Stream((string)$result));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+6
-14
@@ -2,22 +2,13 @@
|
|||||||
|
|
||||||
namespace Kiri\Router\Format;
|
namespace Kiri\Router\Format;
|
||||||
|
|
||||||
use Kiri\Di\Inject\Container;
|
use Kiri;
|
||||||
use Kiri\Router\Constrict\Stream;
|
use Kiri\Router\Constrict\Stream;
|
||||||
use Kiri\Router\ContentType;
|
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
|
|
||||||
class NoBody implements IFormat
|
class NoBody implements IFormat
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var ResponseInterface
|
|
||||||
*/
|
|
||||||
#[Container(ResponseInterface::class)]
|
|
||||||
public ResponseInterface $response;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $result
|
* @param $result
|
||||||
* @return ResponseInterface
|
* @return ResponseInterface
|
||||||
@@ -25,19 +16,20 @@ class NoBody implements IFormat
|
|||||||
public function call($result): ResponseInterface
|
public function call($result): ResponseInterface
|
||||||
{
|
{
|
||||||
// TODO: Implement call() method.
|
// TODO: Implement call() method.
|
||||||
|
$response = Kiri::getDi()->get(ResponseInterface::class);
|
||||||
if (request()->getMethod() === 'HEAD') {
|
if (request()->getMethod() === 'HEAD') {
|
||||||
return $this->response->withBody(new Stream());
|
return $response->withBody(new Stream());
|
||||||
}
|
}
|
||||||
if ($result instanceof ResponseInterface) {
|
if ($result instanceof ResponseInterface) {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
if (is_object($result)) {
|
if (is_object($result)) {
|
||||||
return $this->response->withBody(new Stream('[object]'));
|
return $response->withBody(new Stream('[object]'));
|
||||||
}
|
}
|
||||||
if (is_array($result)) {
|
if (is_array($result)) {
|
||||||
return $this->response->withBody(new Stream(json_encode($result, JSON_UNESCAPED_UNICODE)));
|
return $response->withBody(new Stream(json_encode($result, JSON_UNESCAPED_UNICODE)));
|
||||||
} else {
|
} else {
|
||||||
return $this->response->withBody(new Stream((string)$result));
|
return $response->withBody(new Stream((string)$result));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -9,21 +9,13 @@ use Psr\Http\Message\ResponseInterface;
|
|||||||
class OtherFormat implements IFormat
|
class OtherFormat implements IFormat
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var ResponseInterface
|
|
||||||
*/
|
|
||||||
#[Container(ResponseInterface::class)]
|
|
||||||
public ResponseInterface $response;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param mixed $result
|
* @param mixed $result
|
||||||
* @return ResponseInterface
|
* @return ResponseInterface
|
||||||
*/
|
*/
|
||||||
public function call(mixed $result): ResponseInterface
|
public function call(mixed $result): ResponseInterface
|
||||||
{
|
{
|
||||||
return $this->response->withBody(new Stream($result));
|
return di(ResponseInterface::class)->withBody(new Stream($result));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,15 +8,6 @@ use Psr\Http\Message\ResponseInterface;
|
|||||||
class VoidFormat implements IFormat
|
class VoidFormat implements IFormat
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var ResponseInterface
|
|
||||||
*/
|
|
||||||
#[Container(ResponseInterface::class)]
|
|
||||||
public ResponseInterface $response;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $result
|
* @param $result
|
||||||
* @return ResponseInterface
|
* @return ResponseInterface
|
||||||
@@ -24,7 +15,7 @@ class VoidFormat implements IFormat
|
|||||||
public function call($result): ResponseInterface
|
public function call($result): ResponseInterface
|
||||||
{
|
{
|
||||||
// TODO: Implement call() method.
|
// TODO: Implement call() method.
|
||||||
return $this->response;
|
return di(ResponseInterface::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -36,12 +36,6 @@ class Handler implements RequestHandlerInterface
|
|||||||
protected array $methods = [];
|
protected array $methods = [];
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var ContainerInterface
|
|
||||||
*/
|
|
||||||
protected ContainerInterface $container;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array|Closure $handler
|
* @param array|Closure $handler
|
||||||
* @param array $parameters
|
* @param array $parameters
|
||||||
|
|||||||
+8
-23
@@ -6,12 +6,10 @@ namespace Kiri\Router;
|
|||||||
|
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
use Kiri;
|
|
||||||
use Kiri\Router\Base\NotFoundController;
|
use Kiri\Router\Base\NotFoundController;
|
||||||
use Kiri\Router\Constrict\RequestMethod;
|
use Kiri\Router\Constrict\RequestMethod;
|
||||||
use Kiri\Di\Inject\Container;
|
use Kiri\Di\Inject\Container;
|
||||||
use Psr\Container\ContainerInterface;
|
use Psr\Container\ContainerInterface;
|
||||||
use ReflectionMethod;
|
|
||||||
use Throwable;
|
use Throwable;
|
||||||
use Traversable;
|
use Traversable;
|
||||||
use Kiri\Router\Base\Middleware;
|
use Kiri\Router\Base\Middleware;
|
||||||
@@ -61,20 +59,6 @@ class RouterCollector implements \ArrayAccess, \IteratorAggregate
|
|||||||
protected Handler $found;
|
protected Handler $found;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var ControllerInterpreter
|
|
||||||
*/
|
|
||||||
#[Container(ControllerInterpreter::class)]
|
|
||||||
public ControllerInterpreter $interpreter;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var ContainerInterface
|
|
||||||
*/
|
|
||||||
#[Container(ContainerInterface::class)]
|
|
||||||
public ContainerInterface $container;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws
|
* @throws
|
||||||
*/
|
*/
|
||||||
@@ -133,11 +117,11 @@ class RouterCollector implements \ArrayAccess, \IteratorAggregate
|
|||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$route = $this->_splicing_routing($route);
|
$route = $this->_splicing_routing($route);
|
||||||
// if ($closure instanceof Closure) {
|
if ($closure instanceof Closure) {
|
||||||
// $handler = $this->interpreter->addRouteByClosure($closure);
|
$handler = di(ControllerInterpreter::class)->addRouteByClosure($closure);
|
||||||
// } else {
|
} else {
|
||||||
// }
|
$handler = $this->resolve($closure, di(ControllerInterpreter::class));
|
||||||
$handler = $this->resolve($closure, $this->interpreter);
|
}
|
||||||
foreach ($method as $value) {
|
foreach ($method as $value) {
|
||||||
if ($value instanceof RequestMethod) {
|
if ($value instanceof RequestMethod) {
|
||||||
$value = $value->getString();
|
$value = $value->getString();
|
||||||
@@ -184,9 +168,10 @@ class RouterCollector implements \ArrayAccess, \IteratorAggregate
|
|||||||
*/
|
*/
|
||||||
private function resolve(string|array $closure, ControllerInterpreter $interpreter): Handler
|
private function resolve(string|array $closure, ControllerInterpreter $interpreter): Handler
|
||||||
{
|
{
|
||||||
|
$container = \Kiri::getDi();
|
||||||
if (is_array($closure)) {
|
if (is_array($closure)) {
|
||||||
if (is_string($closure[0])) {
|
if (is_string($closure[0])) {
|
||||||
$closure[0] = $this->container->get($closure[0]);
|
$closure[0] = $container->get($closure[0]);
|
||||||
}
|
}
|
||||||
return $interpreter->addRouteByString(... $closure);
|
return $interpreter->addRouteByString(... $closure);
|
||||||
}
|
}
|
||||||
@@ -194,7 +179,7 @@ class RouterCollector implements \ArrayAccess, \IteratorAggregate
|
|||||||
$closure .= '@';
|
$closure .= '@';
|
||||||
}
|
}
|
||||||
[$className, $method] = explode('@', $closure);
|
[$className, $method] = explode('@', $closure);
|
||||||
$class = $this->container->get($this->resetName($className));
|
$class = $container->get($this->resetName($className));
|
||||||
return $interpreter->addRouteByString($class, $method);
|
return $interpreter->addRouteByString($class, $method);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,12 +35,11 @@ class SwooleHttpResponseEmitter implements ResponseEmitterInterface
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param EventDispatch $dispatch
|
* @param EventDispatch $dispatch
|
||||||
* @param EventProvider $provider
|
|
||||||
*/
|
*/
|
||||||
public function __construct(readonly public EventDispatch $dispatch, readonly public EventProvider $provider)
|
public function __construct(readonly public EventDispatch $dispatch)
|
||||||
{
|
{
|
||||||
$this->afterRequest = new OnAfterRequest();
|
$this->afterRequest = new OnAfterRequest();
|
||||||
$this->events = $this->provider->getListenersForEvent($this->afterRequest);
|
$this->events = di(EventProvider::class)->getListenersForEvent($this->afterRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,22 +7,12 @@ use Kiri\Di\Interface\ResponseEmitterInterface;
|
|||||||
use Kiri\Events\EventDispatch;
|
use Kiri\Events\EventDispatch;
|
||||||
use Kiri\Events\EventProvider;
|
use Kiri\Events\EventProvider;
|
||||||
use Kiri\Server\Events\OnAfterRequest;
|
use Kiri\Server\Events\OnAfterRequest;
|
||||||
use Psr\Container\ContainerExceptionInterface;
|
|
||||||
use Psr\Container\NotFoundExceptionInterface;
|
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use ReflectionException;
|
|
||||||
use SplPriorityQueue;
|
use SplPriorityQueue;
|
||||||
|
|
||||||
class SwowHttpResponseEmitter implements ResponseEmitterInterface
|
class SwowHttpResponseEmitter implements ResponseEmitterInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
|
||||||
* @var EventProvider
|
|
||||||
*/
|
|
||||||
#[Container(EventProvider::class)]
|
|
||||||
public EventProvider $provider;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var EventDispatch
|
* @var EventDispatch
|
||||||
*/
|
*/
|
||||||
@@ -48,7 +38,7 @@ class SwowHttpResponseEmitter implements ResponseEmitterInterface
|
|||||||
public function init(): void
|
public function init(): void
|
||||||
{
|
{
|
||||||
$this->afterRequest = new OnAfterRequest();
|
$this->afterRequest = new OnAfterRequest();
|
||||||
$this->events = $this->provider->getListenersForEvent($this->afterRequest);
|
$this->events = di(EventProvider::class)->getListenersForEvent($this->afterRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,8 @@ class BindForm implements InjectParameterInterface
|
|||||||
|
|
||||||
$middleware = \instance(ValidatorMiddleware::class);
|
$middleware = \instance(ValidatorMiddleware::class);
|
||||||
$middleware->validator = $validator;
|
$middleware->validator = $validator;
|
||||||
// Middleware::set($class, $method, $middleware);
|
|
||||||
|
Middleware::set($class, $method, $middleware);
|
||||||
|
|
||||||
return $validator->getFormData();
|
return $validator->getFormData();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace Kiri\Router\Validator;
|
namespace Kiri\Router\Validator;
|
||||||
|
|
||||||
use Kiri\Di\Inject\Container;
|
use Kiri\Router\Base\Middleware;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Psr\Http\Server\MiddlewareInterface;
|
use Psr\Http\Server\MiddlewareInterface;
|
||||||
@@ -16,16 +16,6 @@ class ValidatorMiddleware implements MiddlewareInterface
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
public Validator $validator;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var ResponseInterface
|
|
||||||
*/
|
|
||||||
#[Container(ResponseInterface::class)]
|
|
||||||
public ResponseInterface $response;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param ServerRequestInterface $request
|
* @param ServerRequestInterface $request
|
||||||
* @param RequestHandlerInterface $handler
|
* @param RequestHandlerInterface $handler
|
||||||
@@ -34,8 +24,9 @@ class ValidatorMiddleware implements MiddlewareInterface
|
|||||||
*/
|
*/
|
||||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||||
{
|
{
|
||||||
if (!$this->validator->run($request)) {
|
$validator = Middleware::getValidator($request->getMethod() . '::' . $request->getUri()->getPath());
|
||||||
return $this->response->html($this->validator->error(), 415);
|
if (!$validator->run($request)) {
|
||||||
|
return di(ResponseInterface::class)->html($validator->error(), 415);
|
||||||
} else {
|
} else {
|
||||||
return $handler->handle($request);
|
return $handler->handle($request);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user