# Трейт HttpSoft\Message\MessageTrait
Трейт, реализующий методы, определенные в Psr\Http\Message\MessageInterface, используется внутри HttpSoft\Message\RequestTrait и HttpSoft\Message\ResponseTrait.
# Публичные методы
Оригинальное подробное описание методов смотрите в Psr\Http\Message\MessageInterface.
Сеттеры с префиксом
withиwithoutне изменяют текущий, а возвращают новый экземпляр класса (использующегоHttpSoft\Message\MessageTrait) с измененными данными.
# getProtocolVersion
Возвращает версию HTTP-протокола в виде строки.
public function getProtocolVersion(): string; Пример возвращаемых значений: 1.0, 1.1, 2.0, 2.
# withProtocolVersion
Возвращает новый экземпляр с указанной версией протокола HTTP.
/**
* @param string $version
* @return static
*/
public function withProtocolVersion($version): MessageInterface; Если указана невалидная версия HTTP-протокола, будет брошено исключение \InvalidArgumentException. Поддерживаемые версии: 1.0, 1.1, 2.0 и 2.
$message->getProtocolVersion(); // '1.1'
$newMessage = $message->withProtocolVersion('2');
$newMessage->getProtocolVersion(); // '2'
$message->getProtocolVersion(); // '1.1'
$message->withProtocolVersion('1.1.1') // throws InvalidArgumentException # getHeaders
Возвращает все значения всех заголовков HTTP-сообщения.
public function getHeaders(): array; Пример возвращаемых значений:
[
'Content-Encoding' => [
0 => 'gzip',
],
'Content-Security-Policy' => [
0 => 'block-all-mixed-content',
],
'Allow' => [
0 => 'GET',
1 => 'HEAD',
],
]; # hasHeader
Проверяет, существует ли заголовок с указанным именем без учета регистра.
/**
* @param string $name
* @return bool
*/
public function hasHeader($name): bool; # getHeader
Возвращает значения заголовка по указанному регистронезависимому имени или пустой массив, если заголовка с таким именем не найдено.
/**
* @param string $name
* @return array
*/
public function getHeader($name): array; Пример возвращаемых значений:
// $request->getHeader('Allow');
[
0 => 'GET',
1 => 'HEAD',
]; # getHeaderLine
Возвращает разделенную запятыми строку значений, по указанному регистронезависимому имени заголовка или пустую строку если заголовка с таким именем не найдено.
/**
* @param string $name
* @return string
*/
public function getHeaderLine($name): string; Пример возвращаемых значений (для Allow): 'GET,HEAD'.
# withHeader
Возвращает новый экземпляр с указанным заголовком и значением, которые заменяют текущие. Имя заголовка регистронезависимо.
/**
* @param string $name
* @param string|string[] $value
* @return static
*/
public function withHeader($name, $value): MessageInterface; Если указанны невалидное имя заголовка или значение, будет брошено исключение \InvalidArgumentException.
$message->getHeader('Allow'); // ['POST']
$message->getHeaderLine('Allow'); // 'POST'
$newMessage1 = $message->withHeader('Allow', 'GET');
$newMessage1->getHeader('Allow'); // ['GET']
$newMessage1->getHeaderLine('Allow'); // 'GET'
$newMessage2 = $newMessage1->withHeader('Allow', ['GET', 'HEAD']);
$newMessage2->getHeader('Allow'); // ['GET', 'HEAD']
$newMessage2->getHeaderLine('Allow'); // 'GET,HEAD'
$message->withHeader('All/ow', 'GET') // throws InvalidArgumentException
$message->withHeader('Allow', "GE\nT") // throws InvalidArgumentException # withAddedHeader
Возвращает новый экземпляр с указанным заголовком, добавляя передаваемое значение. Имя заголовка регистронезависимо.
/**
* @param string $name
* @param string|string[] $value
* @return static
*/
public function withAddedHeader($name, $value): MessageInterface; Существующие значения для указанного заголовка будут сохранены. Новые значениея будут добавлены к уже существующему списку. Если заголовок ранее не существовал, он будет добавлен.
Если указанны невалидное имя заголовка или значение, будет брошено исключение \InvalidArgumentException.
$message->getHeader('Allow'); // ['POST']
$message->getHeaderLine('Allow'); // 'POST'
$newMessage1 = $message->withAddedHeader('Allow', 'GET');
$newMessage1->getHeader('Allow'); // ['POST', 'GET']
$newMessage1->getHeaderLine('Allow'); // 'POST,GET'
$newMessage2 = $newMessage1->withAddedHeader('Allow', ['HEAD', 'OPTIONS']);
$newMessage2->getHeader('Allow'); // ['POST', 'GET', 'HEAD', 'OPTIONS']
$newMessage2->getHeaderLine('Allow'); // 'POST,GET,HEAD,OPTIONS'
$message->withAddedHeader('All/ow', 'GET') // throws InvalidArgumentException
$message->withAddedHeader('Allow', "GE\nT") // throws InvalidArgumentException # withoutHeader
Возвращает новый экземпляр без указанного заголовка. Имя заголовка регистронезависимо.
/**
* @param string $name
* @return static
*/
public function withoutHeader($name): MessageInterface; Если заголовка с указанным именем не найдено, будет возвращен текущий экземпляр.
$message->getHeader('Allow'); // ['POST']
$message->getHeaderLine('Allow'); // 'POST'
$newMessage = $message->withoutHeader('Allow');
$newMessage->getHeader('Allow'); // []
$newMessage->getHeaderLine('Allow'); // '' # getBody
Возвращает тело HTTP-сообщения.
public function getBody(): StreamInterface; Методы Psr\Http\Message\StreamInterface реализованы в HttpSoft\Message\StreamTrait.
# withBody
Возвращает новый экземпляр с указанным телом сообщения.
public function withBody(StreamInterface $body): MessageInterface; Тело должно быть экземпляром Psr\Http\Message\StreamInterface.
