Phalcon\Http\Message\AbstractMessage
Абстрактный класс Phalcon\Http\Message\AbstractMessage
Пространство имен | 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;
Проверяет протокол