Абстрактный класс Phalcon\Http\Message\AbstractMessage

Source on GitHub

Пространство имен Phalcon\Http\Message
Использует Phalcon\Collection, Phalcon\Http\Message\Exception\InvalidArgumentException, Psr\Http\Message\StreamInterface, Psr\Http\Message\UriInterface
Расширяет AbstractCommon

Методы сообщения

Свойства

/**
 * Получает текст сообщения.
 *
 * @var StreamInterface
 */
protected body;

/**
 * @var Collection
 */
protected headers;

/**
 * Извлекает версию протокола HTTP в виде строки.
 *
 * Строка должна содержать только номер версии HTTP (например, '1.1',
 * '1.0').
 *
 * @return строковая версия протокола HTTP.
 *
 * @var string
 */
protected protocolVersion = 1.1;

/**
 * Извлекает экземпляр URI.
 *
 * Этот метод должен возвращать экземпляр UriInterface.
 *
 * @see http://tools.ietf.org/html/rfc3986#section-4.3
 *
 * @var UriInterface
 */
protected uri;

Методы

public function getBody(): StreamInterface

public function getHeader( mixed $name ): array;

Извлекает значение заголовка сообщения по заданному имени без учета регистра.

Этот метод возвращает массив всех значений заголовка данного нечувствительного к регистру имени заголовка.

Если заголовок не отображается в сообщении, этот метод должен возвращать пустой массив.

public function getHeaderLine( mixed $name ): string;

Извлекает разделенную запятыми строку значений для одного заголовка.

This method returns all of the header values of the given case-insensitive header name as a string concatenated together using a comma.

Примечание: не все значения заголовка могут быть соответствующим образом представлены с помощью конкатенации запятых. Для таких заголовков вместо этого используйте getHeader () и укажите свой собственный разделитель при объединении.

Если заголовок не отображается в сообщении, этот метод должен возвращать пустую строку.

public function getHeaders(): array;

Извлекает все значения заголовка сообщения.

Ключи представляют имя заголовка в том виде, в каком оно будет передано по проводу, и каждое значение представляет собой массив строк, связанных с заголовком.

// Представляет заголовки в виде строки
foreach ($message->getHeaders() as $name => $values) {
    echo $name . ': ' . implode(', ', $values);
}

// Выдает заголовки итеративно:
foreach ($message->getHeaders() as $name => $values) {
    foreach ($values as $value) {
        header(sprintf('%s: %s', $name, $value), false);
    }
}

Хотя имена заголовков не чувствительны к регистру, getHeaders () сохранит точный случай, в котором заголовки были изначально указаны.

public function getProtocolVersion(): string

 

public function getUri(): UriInterface

 

public function hasHeader( mixed $name ): bool;

Проверяет, существует ли заголовок с заданным именем без учета регистра.

public function withAddedHeader( mixed $name, mixed $value ): object;

Вернуть экземпляр с указанным заголовком, к которому добавлено заданное значение.

Существующие значения для указанного заголовка будут сохранены. Новые значения будут добавлены в существующий список. Если заголовок ранее не существовал, он будет добавлен.

Этот метод ДОЛЖЕН быть реализован таким образом, чтобы сохранить неизменность сообщения, и ДОЛЖЕН возвратить экземпляр, который имеет новый заголовок и / или значение.

public function withBody( StreamInterface $body ): object;

Вернуть экземпляр с указанным телом сообщения.

Тело ДОЛЖНО быть объектом StreamInterface.

Этот метод ДОЛЖЕН быть реализован таким образом, чтобы сохранить неизменность сообщения, и ДОЛЖЕН возвратить новый экземпляр, который имеет новый поток тела.

public function withHeader( mixed $name, mixed $value ): object;

Вернуть экземпляр с предоставленным значением, заменяющим указанный заголовок.

Хотя имена заголовков не чувствительны к регистру, регистр заголовка будет сохранен этой функцией и возвращен из getHeaders ().

Этот метод ДОЛЖЕН быть реализован таким образом, чтобы сохранить неизменность сообщения, и ДОЛЖЕН возвратить экземпляр, который имеет новый и / или обновленный заголовок и значение.

public function withProtocolVersion( mixed $version ): object;

Вернуть экземпляр с указанной версией протокола HTTP.

Строка версии ДОЛЖНА содержать только номер версии HTTP (например, «1.1», «1.0»).

Этот метод ДОЛЖЕН быть реализован таким образом, чтобы сохранить неизменность сообщения, и ДОЛЖЕН вернуть экземпляр, имеющий новую версию протокола.

public function withoutHeader( mixed $name ): object;

Вернуть экземпляр без указанного заголовка.

Разрешение заголовка ДОЛЖНО быть сделано без учета регистра.

Этот метод ДОЛЖЕН быть реализован таким образом, чтобы сохранить неизменность сообщения, и ДОЛЖЕН возвратить экземпляр, который удаляет названный заголовок.

final protected function checkHeaderHost( Collection $collection ): Collection;

Убедитесь, что Host является первым заголовком.

@see: http://tools.ietf.org/html/rfc7230#section-5.4

final protected function checkHeaderName( mixed $name ): void;

Проверьте название заголовка. Брось исключение, если оно недействительно

@see http://tools.ietf.org/html/rfc7230#section-3.2

final protected function checkHeaderValue( mixed $value ): void;

Проверяет значение заголовка

Большинство значений полей заголовка HTTP определяются с использованием общих компонентов синтаксиса (токен, строка в кавычках и комментарий), разделенных пробелами или определенными символами-разделителями. Разделители выбираются из набора визуальных символов US-ASCII, которые не допускаются в токене (DQUOTE и ‘(),/:;<=>?@[]{}’).

token          = 1*tchar

tchar          = '!' / '#' / '$' / '%' / '&' / ''' / '*'
               / '+' / '-' / '.' / '^' / '_' / '`' / '|' / '~'
               / DIGIT / ALPHA
               ; any VCHAR, except delimiters

Строка текста анализируется как одно значение, если она заключена в двойные кавычки.

quoted-string  = DQUOTE( qdtext / quoted-pair ) DQUOTE
qdtext         = HTAB / SP /%x21 / %x23-5B / %x5D-7E / obs-text
obs-text       = %x80-FF

Комментарии могут быть включены в некоторые поля заголовка HTTP, заключив текст комментария в круглые скобки. Комментарии допускаются только в полях, содержащих комментарий, как часть определения значения их поля.

comment        = '('( ctext / quoted-pair / comment ) ')'
ctext          = HTAB / SP / %x21-27 / %x2A-5B / %x5D-7E / obs-text

Октет с обратной косой чертой (‘') можно использовать как механизм цитирования с одним октетом в конструкциях строк цитирования и комментариев. Получатели, которые обрабатывают значение строки в кавычках, ДОЛЖНЫ обрабатывать пару в кавычках, как если бы она была заменена октетом после обратной косой черты.

quoted-pair    = '\' ( HTAB / SP / VCHAR / obs-text )

Отправителю НЕ СЛЕДУЕТ генерировать пару в кавычках в строке в кавычках, за исключением случаев, когда необходимо заключить в кавычки октеты DQUOTE и обратный слеш, встречающиеся в этой строке. Отправителю НЕ СЛЕДУЕТ генерировать пару в кавычках в комментарии, за исключением случаев, когда необходимо заключить в скобки круглые скобки [’(‘ и ‘)’) и октеты с обратной косой чертой, встречающиеся в этом комментарии.

@see https://tools.ietf.org/html/rfc7230#section-3.2.6

final protected function getHeaderValue( mixed $values ): array;

Возвращает значения заголовка, проверенные на достоверность

final protected function getUriHost( UriInterface $uri ): string;

Возвращает хост и, если применимо, порт

final protected function populateHeaderCollection( array $headers ): Collection;

Заполняет коллекцию заголовков

final protected function processBody( mixed $body = string, string $mode = string ): StreamInterface;

Устанавливает действительный поток

final protected function processHeaders( mixed $headers ): Collection;

Устанавливает заголовки

final protected function processProtocol( mixed $protocol = string ): string;

Проверяет протокол