The available emitter implementations are.
- `Narrowspark\HttpEmitter\SapiEmitter`
- `Narrowspark\HttpEmitter\SapiStreamEmitter`.
Note: each use the native PHP functions
header()
andecho
to emit the response.
Note: if headers have been sent, or the output buffer exists, and has a non-zero length, the emitters raise an exception, as mixed PSR-7 / output buffer content creates a blocking issue.
If you are emitting content via
echo
,var_dump
, etc., or not catching PHP errors / exceptions, you will need to either fix your app to always work with a PSR-7 response. Or provide your own emitters that allow mixed output mechanisms.
composer require narrowspark/http-emitter
How to use the SapiEmitter:
<?php
use Narrowspark\HttpEmitter\SapiEmitter;
$response = new \Response();
$response->getBody()->write("some content\n");
$emitter = new SapiEmitter();
$emitter->emit($response);
If you missing the Content-Length
header you can use the \Narrowspark\HttpEmitter\Util\Util::injectContentLength
static method.
<?php
use Narrowspark\HttpEmitter\Util;
$response = new \Response();
$response = Util::injectContentLength($response);
This library follows semantic versioning, and additions to the code ruleset are performed in major releases.
Please have a look at CHANGELOG.md
.
If you would like to help take a look at the list of issues and check our Contributing guild.
Please have a look at CODE_OF_CONDUCT.md
.
This package is licensed using the MIT License.
Please have a look at LICENSE.md
.