This commit is contained in:
2025-07-21 17:26:51 +08:00
parent 3251045a5b
commit 926cbea0b9
4 changed files with 22 additions and 20 deletions
-8
View File
@@ -49,12 +49,4 @@ class Controller extends Kiri\Abstracts\Component
public ContainerInterface $container;
/**
* @param Request $request
* @return true
*/
public function beforeAction(RequestInterface $request): bool
{
return true;
}
}
-12
View File
@@ -7,7 +7,6 @@ use Kiri\Core\Help;
use Kiri\Router\ContentType;
use Kiri\Router\StreamResponse;
use Psr\Http\Message\ResponseInterface;
use Swoole\Http\Response;
class ConstrictResponse extends Message implements ResponseInterface
@@ -20,18 +19,11 @@ class ConstrictResponse extends Message implements ResponseInterface
private string $reasonPhrase;
/**
* @var array|mixed
*/
public array $headers = [];
/**
* @param ContentType|null $contentType
*/
public function __construct(?ContentType $contentType = null)
{
$this->headers = \config('response.headers', $this->headers);
if ($contentType != null) {
$this->withHeader('Content-Type', $contentType->toString());
}
@@ -215,10 +207,6 @@ class ConstrictResponse extends Message implements ResponseInterface
*/
public function end(object $response): void
{
/** @var Response $response */
if (count($this->headers) > 0) foreach ($this->headers as $key => $header) {
$response->header($key, $header);
}
$response->end($this->stream->getContents());
}
}
+15
View File
@@ -76,6 +76,8 @@ class OnRequest implements OnRequestInterface
public function onRequest(Request $request, Response $response): void
{
try {
$this->setResponseHeaders($response, $this->response->headers);
/** @var CQ $PsrRequest */
Context::set(ResponseInterface::class, new ConstrictResponse($this->response->contentType));
$PsrRequest = Context::set(RequestInterface::class, CQ::builder($request));
@@ -90,4 +92,17 @@ class OnRequest implements OnRequestInterface
}
}
/**
* @param Response $response
* @param array $headers
* @return void
*/
protected function setResponseHeaders(Response $response, array $headers): void
{
foreach ($headers as $key => $header) {
$response->header($key, $header);
}
}
}
+7
View File
@@ -21,6 +21,12 @@ class Response implements ResponseInterface
public ContentType $contentType = ContentType::JSON;
/**
* @var array
*/
public array $headers = [];
/**
* @var string|ResponseEmitterInterface
*/
@@ -33,6 +39,7 @@ class Response implements ResponseInterface
public function __construct()
{
$this->contentType = \config('response.content-type', ContentType::JSON);
$this->headers = \config('response.headers', []);
$this->emmit = \config('response.emmit', SwooleHttpResponseEmitter::class);
}