This commit is contained in:
xl
2024-08-29 17:01:08 +08:00
parent 337c52c744
commit c435af1156
15 changed files with 61 additions and 167 deletions
+5 -33
View File
@@ -5,50 +5,23 @@ namespace Kiri\Router\Base;
use Kiri;
use Kiri\Router\Response;
use Kiri\Router\Request;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;
use Kiri\Di\Inject\Container;
/**
* Class WebController
* @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
* @return true
@@ -57,5 +30,4 @@ abstract class Controller
{
return true;
}
}
+2 -9
View File
@@ -18,14 +18,6 @@ use Psr\Http\Server\RequestHandlerInterface;
class CoreMiddleware implements MiddlewareInterface
{
/**
* @var Response
*/
#[Container(ResponseInterface::class)]
public ResponseInterface $response;
/**
* @param Request $request
* @param RequestHandlerInterface $handler
@@ -34,7 +26,8 @@ class CoreMiddleware implements MiddlewareInterface
*/
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);
}
+21 -3
View File
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace Kiri\Router\Base;
use Kiri;
use Kiri\Router\Validator\Validator;
class Middleware
{
@@ -12,12 +13,11 @@ class Middleware
/**
* @var array
*/
protected static array $manager = [];
protected static array $mapping = [];
protected static array $validators = [];
/**
* @param string $className
* @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;
}
}