eee
This commit is contained in:
@@ -19,6 +19,18 @@ class ConstrictResponse extends Message implements ResponseInterface
|
||||
private string $reasonPhrase;
|
||||
|
||||
|
||||
/**
|
||||
* @param ContentType|null $contentType
|
||||
*/
|
||||
public function __construct(?ContentType $contentType = null)
|
||||
{
|
||||
if ($contentType != null) {
|
||||
$this->withHeader('Content-Type', $contentType->toString());
|
||||
}
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param ContentType $contentType
|
||||
* @return $this
|
||||
@@ -39,9 +51,9 @@ class ConstrictResponse extends Message implements ResponseInterface
|
||||
public function write(mixed $data, int $statusCode = 200, ContentType $type = ContentType::HTML): static
|
||||
{
|
||||
if ($data instanceof \Stringable) {
|
||||
$this->getBody()->write($data->__toString());
|
||||
$this->stream->write($data->__toString());
|
||||
} else {
|
||||
$this->getBody()->write((string)$data);
|
||||
$this->stream->write((string)$data);
|
||||
}
|
||||
return $this->withContentType($type)->withStatus($statusCode);
|
||||
}
|
||||
@@ -54,7 +66,7 @@ class ConstrictResponse extends Message implements ResponseInterface
|
||||
*/
|
||||
public function xml(array $content, int $statusCode = 200): static
|
||||
{
|
||||
$this->getBody()->write(Help::toXml($content));
|
||||
$this->stream->write(Help::toXml($content));
|
||||
return $this->withContentType(ContentType::XML)->withStatus($statusCode);
|
||||
}
|
||||
|
||||
@@ -66,7 +78,7 @@ class ConstrictResponse extends Message implements ResponseInterface
|
||||
*/
|
||||
public function json(array $content, int $statusCode = 200): static
|
||||
{
|
||||
$this->getBody()->write(json_encode($content));
|
||||
$this->stream->write(json_encode($content, JSON_UNESCAPED_UNICODE));
|
||||
return $this->withContentType(ContentType::JSON)->withStatus($statusCode);
|
||||
}
|
||||
|
||||
@@ -79,7 +91,7 @@ class ConstrictResponse extends Message implements ResponseInterface
|
||||
*/
|
||||
public function raw(string $content, int $statusCode = 200, ContentType $contentType = ContentType::JSON): static
|
||||
{
|
||||
$this->getBody()->write($content);
|
||||
$this->stream->write($content);
|
||||
return $this->withContentType($contentType)->withStatus($statusCode);
|
||||
}
|
||||
|
||||
@@ -91,7 +103,7 @@ class ConstrictResponse extends Message implements ResponseInterface
|
||||
*/
|
||||
public function html(string $content = '', int $statusCode = 200): static
|
||||
{
|
||||
$this->getBody()->write($content);
|
||||
$this->stream->write($content);
|
||||
return $this->withContentType(ContentType::HTML)->withStatus($statusCode);
|
||||
}
|
||||
|
||||
@@ -176,6 +188,6 @@ class ConstrictResponse extends Message implements ResponseInterface
|
||||
*/
|
||||
public function end(object $response): void
|
||||
{
|
||||
$response->end($this->getBody()->getContents());
|
||||
$response->end($this->stream->getContents());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ class Message extends Component implements MessageInterface
|
||||
/**
|
||||
* @var StreamInterface
|
||||
*/
|
||||
private StreamInterface $stream;
|
||||
public StreamInterface $stream;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
|
||||
+25
-5
@@ -10,6 +10,9 @@ use Kiri\Router\Format\MixedFormat;
|
||||
use Kiri\Router\Format\OtherFormat;
|
||||
use Kiri\Router\Format\ResponseFormat;
|
||||
use Kiri\Router\Format\VoidFormat;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\ContainerInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Psr\Http\Server\RequestHandlerInterface;
|
||||
@@ -25,18 +28,37 @@ class Handler implements RequestHandlerInterface
|
||||
protected mixed $format;
|
||||
|
||||
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
protected ContainerInterface $container;
|
||||
|
||||
|
||||
/**
|
||||
* @param array|Closure $handler
|
||||
* @param array $parameter
|
||||
* @param ReflectionNamedType|null $reflectionType
|
||||
* @throws ReflectionException
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function __construct(public array|Closure $handler, public array $parameter, public ?ReflectionNamedType $reflectionType)
|
||||
{
|
||||
if ($this->reflectionType == null) {
|
||||
$type = MixedFormat::class;
|
||||
$this->container = \Kiri::getDi();
|
||||
if ($this->reflectionType != null) {
|
||||
$this->format = $this->container->get($this->returnType());
|
||||
} else {
|
||||
$type = match ($this->reflectionType->getName()) {
|
||||
$this->format = $this->container->get(MixedFormat::class);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
protected function returnType(): string
|
||||
{
|
||||
return match ($this->reflectionType->getName()) {
|
||||
'array' => ArrayFormat::class,
|
||||
'mixed', 'object' => MixedFormat::class,
|
||||
'int', 'string', 'bool' => OtherFormat::class,
|
||||
@@ -44,8 +66,6 @@ class Handler implements RequestHandlerInterface
|
||||
default => ResponseFormat::class
|
||||
};
|
||||
}
|
||||
$this->format = di($type);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
||||
+12
-5
@@ -8,6 +8,9 @@ use Exception;
|
||||
use Kiri;
|
||||
use Kiri\Router\Base\Middleware as MiddlewareManager;
|
||||
use Kiri\Router\Constrict\RequestMethod;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\ContainerInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
use ReflectionException;
|
||||
|
||||
/**
|
||||
@@ -175,23 +178,27 @@ class Router
|
||||
*/
|
||||
public function scan_build_route(): void
|
||||
{
|
||||
$scanner = Kiri::getDi()->get(Kiri\Di\Scanner::class);
|
||||
$container = Kiri::getDi();
|
||||
$scanner = $container->get(Kiri\Di\Scanner::class);
|
||||
$scanner->read(APP_PATH . 'app/');
|
||||
$scanner->parse('App');
|
||||
|
||||
$this->read_dir_file(APP_PATH . 'routes');
|
||||
$this->reset();
|
||||
$this->reset($container);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
* @return void
|
||||
* @throws ReflectionException
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function reset(): void
|
||||
public function reset(ContainerInterface $container): void
|
||||
{
|
||||
$router = Kiri::getDi()->get(DataGrip::class)->get(static::$type);
|
||||
$middleware = \Kiri::getDi()->get(MiddlewareManager::class);
|
||||
$router = $container->get(DataGrip::class)->get(static::$type);
|
||||
$middleware = $container->get(MiddlewareManager::class);
|
||||
foreach ($router->getMethods() as $name => $method) {
|
||||
$middlewares = $middleware->get($method->getClass(), $method->getMethod());
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ class SwooleHttpResponseEmitter implements ResponseEmitterInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function xxxxxxxxxxxxxxxxxxxxxxxxxSender(ResponseInterface $proxy, object $response, object $request): void
|
||||
public function response(ResponseInterface $proxy, object $response, object $request): void
|
||||
{
|
||||
// TODO: Implement sender() method.
|
||||
$this->writeParams($proxy, $response, $request);
|
||||
|
||||
@@ -61,7 +61,7 @@ class SwowHttpResponseEmitter implements ResponseEmitterInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function xxxxxxxxxxxxxxxxxxxxxxxxxSender(ResponseInterface $proxy, object $response, object $request): void
|
||||
public function response(ResponseInterface $proxy, object $response, object $request): void
|
||||
{
|
||||
// TODO: Implement sender() method.
|
||||
$proxy->withHeader('Server', 'Swow');
|
||||
|
||||
Reference in New Issue
Block a user