Classes List

frdl\Http\Response

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
 36 
 37 
 38 
 39 
 40 
 41 
 42 
 43 
 44 
<?php
/* * inspired by https://github.com/http-interop/response-sender/blob/master/src/functions.php */

namespace frdl\Http;
use Psr\Http\Message\ResponseInterface;

class Response extends \GuzzleHttp\Psr7\Response
{
 
 public static function sendFrom(ResponseInterface $response)
 {
 (new self())->send($response);
 }


 public function send(ResponseInterface $response = null)
 {
 if(null === $response){
 $response = &$this
 }
 
 
    $http_line = sprintf('HTTP/%s %s %s',
        $response->getProtocolVersion(),
        $response->getStatusCode(),
        $response->getReasonPhrase()
    );
    header($http_linetrue$response->getStatusCode());
    foreach ($response->getHeaders() as $name => $values) {
        foreach ($values as $value) {
            header("$name: $value", false);
        }
    }
    $stream = $response->getBody();
    if ($stream->isSeekable()) {
        $stream->rewind();
    }
    while (!$stream->eof()) {
        echo $stream->read(1024 * 8);
    }
  }
}