This commit is contained in:
as2252258@163.com
2021-08-03 01:39:19 +08:00
parent 9697c7783a
commit c4ca8f1e4b
+6 -19
View File
@@ -133,7 +133,9 @@ class Response extends HttpService
*/ */
public function addHeader($key, $value): static public function addHeader($key, $value): static
{ {
$this->headers[$key] = $value; /** @var SResponse $response */
$response = Context::getContext(SResponse::class);
$response->header($key, $value);
return $this; return $this;
} }
@@ -151,7 +153,9 @@ class Response extends HttpService
*/ */
public function addCookie($name, $value = null, $expires = null, $path = null, $domain = null, $secure = null, $httponly = null, $samesite = null, $priority = null): static public function addCookie($name, $value = null, $expires = null, $path = null, $domain = null, $secure = null, $httponly = null, $samesite = null, $priority = null): static
{ {
$this->cookies[] = func_get_args(); /** @var SResponse $response */
$response = Context::getContext(SResponse::class);
$response->cookie(...func_get_args());
return $this; return $this;
} }
@@ -222,32 +226,15 @@ class Response extends HttpService
if (!$response?->isWritable()) { if (!$response?->isWritable()) {
return; return;
} }
$this->setCookies($response);
defer(fn() => $this->headers = []);
if (!isset($response->header['Content-Type'])) { if (!isset($response->header['Content-Type'])) {
$response->header('Content-Type', 'application/json;charset=utf-8'); $response->header('Content-Type', 'application/json;charset=utf-8');
} }
$response->header('Run-Time', $this->getRuntime()); $response->header('Run-Time', $this->getRuntime());
foreach ($this->headers as $key => $header) {
$response->header($key, $header);
}
$response->status($this->statusCode); $response->status($this->statusCode);
$response->end($sendData); $response->end($sendData);
} }
/**
* @param SResponse $response
* @return void
*/
private function setCookies(SResponse $response): void
{
foreach ($this->cookies as $header) {
$response->setCookie(...$header);
}
$this->cookies = [];
}
/** /**
* @param $url * @param $url