Files
kiri-router/src/StreamResponse.php
T

32 lines
535 B
PHP
Raw Normal View History

2023-04-15 23:29:27 +08:00
<?php
2023-04-16 01:24:30 +08:00
declare(strict_types=1);
2023-04-15 23:29:27 +08:00
namespace Kiri\Router;
2023-04-17 01:19:47 +08:00
use Psr\Http\Message\ResponseInterface;
2023-04-15 23:31:16 +08:00
class StreamResponse extends Response
2023-04-15 23:29:27 +08:00
{
public int $limit;
/**
* @param object $response
* @return void
*/
2023-04-17 01:19:47 +08:00
public function end(object $response): void
2023-04-15 23:29:27 +08:00
{
$body = $this->getBody();
$total = ceil($this->limit / $body->getSize());
2023-04-23 18:34:14 +08:00
$response->header('Content-Length', [$body->getSize()]);
2023-04-15 23:29:27 +08:00
for ($i = 0; $i < $total; $i++) {
$body->seek($i);
$response->write($body->read($this->limit));
}
$response->end();
}
2023-04-17 01:19:47 +08:00
2023-04-15 23:29:27 +08:00
}