diff --git a/src/ServerResponse.php b/src/ServerResponse.php index 7df088c82920558b84335141c18ec6107dceeba1..f7792aa36ca0d6bdf9988231854b9b61c96c77c2 100644 --- a/src/ServerResponse.php +++ b/src/ServerResponse.php @@ -20,16 +20,8 @@ class ServerResponse extends Response implements ServerResponseInterface * * @return static */ - public function send() + public function send(int $bufferSize = 8192) { - $http_line = sprintf( - 'HTTP/%s %s %s', - $this->getProtocolVersion(), - $this->getStatusCode(), - $this->getReasonPhrase() - ); - header($http_line, true, $this->getStatusCode()); - foreach ($this->getHeaders() as $name => $values) { if (strtolower($name) !== 'set-cookie') { header(sprintf('%s: %s', $name, implode(',', $values)), false); @@ -40,12 +32,20 @@ class ServerResponse extends Response implements ServerResponseInterface } } + $http_line = sprintf( + 'HTTP/%s %s %s', + $this->getProtocolVersion(), + $this->getStatusCode(), + $this->getReasonPhrase() + ); + header($http_line, true, $this->getStatusCode()); + $stream = $this->getBody(); if ($stream->isSeekable()) { $stream->rewind(); } while (!$stream->eof()) { - echo $stream->read(1024 * 8); + echo $stream->read($bufferSize); } return $this; }