Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
8 / 8 |
CRAP | |
100.00% |
34 / 34 |
Output | |
100.00% |
1 / 1 |
|
100.00% |
8 / 8 |
12 | |
100.00% |
34 / 34 |
response | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
responseMessage | |
100.00% |
1 / 1 |
1 | |
100.00% |
8 / 8 |
|||
headers | |
100.00% |
1 / 1 |
3 | |
100.00% |
6 / 6 |
|||
header | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
output | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
fpassthru | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
body | |
100.00% |
1 / 1 |
2 | |
100.00% |
6 / 6 |
|||
statusHeader | |
100.00% |
1 / 1 |
2 | |
100.00% |
5 / 5 |
<?php | |
namespace PHPixie\HTTP; | |
class Output | |
{ | |
public function response($response, $context = null) | |
{ | |
$responseMessage = $response->asResponseMessage($context); | |
$this->responseMessage($responseMessage); | |
} | |
public function responseMessage($responseMessage) | |
{ | |
$this->statusHeader( | |
$responseMessage->getStatusCode(), | |
$responseMessage->getReasonPhrase(), | |
$responseMessage->getProtocolVersion() | |
); | |
$this->headers($responseMessage->getHeaders()); | |
$this->body($responseMessage->getBody()); | |
} | |
protected function headers($headers) | |
{ | |
foreach($headers as $name => $lines) { | |
foreach($lines as $key => $line) { | |
$this->header("$name: $line", false); | |
} | |
} | |
} | |
protected function header($header, $replace = true) | |
{ | |
header($header, $replace); | |
} | |
protected function output($header) | |
{ | |
echo $header; | |
} | |
protected function fpassthru($handle) | |
{ | |
fpassthru($handle); | |
} | |
protected function body($stream) | |
{ | |
if($stream instanceof \PHPixie\HTTP\Messages\Stream\Implementation) { | |
$stream->rewind(); | |
$this->fpassthru($stream->resource()); | |
}else{ | |
$this->output((string) $stream); | |
} | |
} | |
protected function statusHeader($statusCode, $reasonPhrase, $protocolVersion = '1.1') | |
{ | |
if($protocolVersion === null) { | |
$protocolVersion = '1.1'; | |
} | |
$this->header("HTTP/{$protocolVersion} $statusCode $reasonPhrase"); | |
} | |
} |