# PHP package for emitting HTTP responses
The HttpSoft\Emitter package emitting implementations of Psr\Http\Message\ResponseInterface.
This package requires PHP version 7.4 or later.
Package installation:
composer require httpsoft/http-emitter
# API
- HttpSoft\Emitter\SapiEmitter — class, that implements HttpSoft\Emitter\EmitterInterface and uses of the PHP SAPI.
Exceptions:
- HttpSoft\Emitter\Exception\HeadersAlreadySentException.
- HttpSoft\Emitter\Exception\OutputAlreadySentException.
# Usage
use HttpSoft\Emitter\SapiEmitter;
use Psr\Http\Message\ResponseInterface;
/** @var ResponseInterface $response */
$response->getBody()->write('Content');
$emitter = new SapiEmitter();
$emitter->emit($response);
// Output result: 'Content'
By default, the entire content of the response is emitted. To emit the content in parts, it is necessary to specify a maximum buffer length:
$emitter = new SapiEmitter(8192);
$emitter->emit($response);
// Output result: 'Content'
Emitting only part of the content using the Content-Range
header:
$emitter = new SapiEmitter(8192);
$emitter->emit($response->withHeader('Content-Range', 'bytes 0-3/7'));
// Output result: 'Cont'
To emitting only the status line and headers without a body, it is necessary to specify true
as the second parameter:
$emitter = new SapiEmitter(8192);
$emitter->emit($response, true);
// Output result: ''
Detailed description of using HttpSoft\Emitter\SapiEmitter
see here.