From 90b9503c727ccb4f0a8827fa4d4b981f9f9dec31 Mon Sep 17 00:00:00 2001 From: PJ Dietz Date: Sun, 12 Apr 2015 10:07:01 -0400 Subject: [PATCH] Add ResponderInterface and add setter for chunk site to Responder --- src/Routing/Responder.php | 27 ++++++++++++++++++----- src/Routing/ResponderInterface.php | 15 +++++++++++++ test/tests/unit/Routing/ResponderTest.php | 1 + 3 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 src/Routing/ResponderInterface.php diff --git a/src/Routing/Responder.php b/src/Routing/Responder.php index 5ae9d3d..06d47fd 100644 --- a/src/Routing/Responder.php +++ b/src/Routing/Responder.php @@ -5,9 +5,16 @@ namespace WellRESTed\Routing; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\StreamableInterface; -class Responder +class Responder implements ResponderInterface { - public function respond(ResponseInterface $response, $chunkSize = 0) + private $chunkSize = 0; + + /** + * Outputs a response. + * + * @param ResponseInterface $response Response to output + */ + public function respond(ResponseInterface $response) { // Status Line header($this->getStatusLine($response)); @@ -22,10 +29,18 @@ class Responder // Body $body = $response->getBody(); if ($body->isReadable()) { - $this->outputBody($response->getBody(), $chunkSize); + $this->outputBody($response->getBody()); } } + /** + * @param int $chunkSize + */ + public function setChunkSize($chunkSize) + { + $this->chunkSize = $chunkSize; + } + private function getStatusLine(ResponseInterface $response) { $protocol = $response->getProtocolVersion(); @@ -38,12 +53,12 @@ class Responder } } - private function outputBody(StreamableInterface $body, $chunkSize) + private function outputBody(StreamableInterface $body) { - if ($chunkSize > 0) { + if ($this->chunkSize > 0) { $body->rewind(); while (!$body->eof()) { - print $body->read($chunkSize); + print $body->read($this->chunkSize); } } else { print (string) $body; diff --git a/src/Routing/ResponderInterface.php b/src/Routing/ResponderInterface.php new file mode 100644 index 0000000..286e481 --- /dev/null +++ b/src/Routing/ResponderInterface.php @@ -0,0 +1,15 @@ +setChunkSize($chunkSize); ob_start(); $responder->respond($this->response->reveal(), $chunkSize);