# PHP пакет для отправки HTTP-ответов
Пакет HttpSoft\Emitter излучает реализации Psr\Http\Message\ResponseInterface.
Для этого пакета требуется PHP версии 7.4 или более поздней.
Установка пакета:
composer require httpsoft/http-emitter
# API
- HttpSoft\Emitter\SapiEmitter — класс, реализующий HttpSoft\Emitter\EmitterInterface и использующий PHP SAPI.
Исключения:
- HttpSoft\Emitter\Exception\HeadersAlreadySentException.
- HttpSoft\Emitter\Exception\OutputAlreadySentException.
# Использование
use HttpSoft\Emitter\SapiEmitter;
use Psr\Http\Message\ResponseInterface;
/** @var ResponseInterface $response */
$response->getBody()->write('Content');
$emitter = new SapiEmitter();
$emitter->emit($response);
// Результат вывода: 'Content'
По умолчанию отдается все содержимое ответа целиком, для отправки содержимого по частям необходимо указать максимальную длину буфера:
$emitter = new SapiEmitter(8192);
$emitter->emit($response);
// Результат вывода: 'Content'
Отправляет только часть содержимого, используя заголовок Content-Range
:
$emitter = new SapiEmitter(8192);
$emitter->emit($response->withHeader('Content-Range', 'bytes 0-3/7'));
// Результат вывода: 'Cont'
Для отправки только строки состояния и заголовков без тела укажите true
в качестве второго параметра:
$emitter = new SapiEmitter(8192);
$emitter->emit($response, true);
// Результат вывода: ''
Подробное описание использования HttpSoft\Emitter\SapiEmitter
смотрите здесь.