# Класс HttpSoft\Response\EmptyResponse

Класс, реализующий Psr\Http\Message\ResponseInterface и HttpSoft\Response\ResponseStatusCodeInterface.

Реализация Psr\Http\Message\ResponseInterface для удобного создания экземпляра ответа с пустым телом.

Исходный код на GitHub.

use HttpSoft\Response\EmptyResponse;

$response = new EmptyResponse();
$response->getStatusCode(); // 204
$response->getReasonPhrase(); // 'No Content'
$response->getBody()->getContents(); // ''
$response->getBody()->getMetadata('uri') // 'php://temp'
$response->getHeaders(); // []
$response->getProtocolVersion(); // '1.1'

$response = new EmptyResponse(201, ['Link' => '<https://example.com>; rel="preconnect"'], '2');
$response->getStatusCode(); // 201
$response->getReasonPhrase(); // 'Created'
$response->getBody()->getContents(); // ''
$response->getBody()->getMetadata('uri') // 'php://temp'
$response->getHeaders(); // ['Link' => ['<https://example.com>; rel="preconnect"']]
$response->getProtocolVersion(); // '2'

$response = new EmptyResponse(EmptyResponse::STATUS_ACCEPTED);
$response->getStatusCode(); // 202
$response->getReasonPhrase(); // 'Accepted'
$response->getBody()->getContents(); // ''
$response->getBody()->getMetadata('uri') // 'php://temp'
$response->getHeaders(); // []
$response->getProtocolVersion(); // '1.1'

$newResponse = $response->withStatus(EmptyResponse::STATUS_INTERNAL_SERVER_ERROR);
$newResponse->getStatusCode(); // 500
$newResponse->getReasonPhrase(); // 'Internal Server Error'

$newResponse = $response->withStatus(599, 'Custom Phrase');
$newResponse->getStatusCode(); // 599
$newResponse->getReasonPhrase(); // 'Custom Phrase'

// При попытке записи контента будет брошено исключение `\InvalidArgumentException`:
$response->getBody()->write('Content'); // throws InvalidArgumentException

# Публичные методы

Оригинальное подробное описание методов смотрите в Psr\Http\Message\ResponseInterface.

/**
 * @param int $code
 * @param array $headers
 * @param string $protocol
 * @param string $reasonPhrase
 */
public function __construct(
    int $code = self::STATUS_NO_CONTENT,
    array $headers = [],
    string $protocol = '1.1',
    string $reasonPhrase = ''
);

Все остальные методы с описанием находятся в подключаемых трейтах: