Files
kiri-router/src/HttpResponseEmitter.php
T

54 lines
1.1 KiB
PHP
Raw Normal View History

2023-04-15 23:29:27 +08:00
<?php
namespace Kiri\Router;
2023-04-15 23:31:16 +08:00
use Exception;
use Kiri\Di\Interface\ResponseEmitter;
use Psr\Http\Message\ResponseInterface;
class HttpResponseEmitter implements ResponseEmitter
2023-04-15 23:29:27 +08:00
{
2023-04-15 23:31:16 +08:00
/**
* @param Response $proxy
* @param object $response
* @return void
* @throws Exception
*/
public function sender(ResponseInterface $proxy, object $response): void
{
// TODO: Implement sender() method.
$this->writeParams($proxy, $response);
$proxy->write($response);
}
/**
* @param Response $proxy
* @param object $response
* @return void
* @throws Exception
*/
private function writeParams(ResponseInterface $proxy, object $response): void
{
$response->setStatusCode($proxy->getStatusCode());
2023-04-16 00:06:10 +08:00
/** @var Request $request */
2023-04-15 23:31:16 +08:00
$request = \Kiri::service()->get('request');
foreach ($request->getHeaders() as $name => $header) {
$response->header($name, implode(', ', $header));
}
$response->setStatusCode($proxy->getStatusCode());
foreach ($request->getCookieParams() as $cookie) {
$response->setCookie(...$cookie);
}
$response->header('Server', 'swoole');
$response->header('Swoole-Version', swoole_version());
}
2023-04-15 23:29:27 +08:00
}