Класс Response
Класс Cake Response отвечает за управление текстом ответа, статусом и заголовками HTTP-ответа.
По умолчанию контроллеры используют этот класс для отображения своего ответа. Если вы собираетесь использовать пользовательский класс ответа, он должен быть подклассом этого объекта, чтобы гарантировать совместимость.
Прямые известные подклассы
Cake\TestSuite\Stub\ResponseПодробное описание методов
__constructsource public
__construct( array $options [] )
Конструктор
Параметры
- массив
$optionsнеобязательно [] - список параметров для настройки ответа. Возможные значения: - body: текст ответа, который должен быть отправлен клиенту - statusCodes: дополнительные разрешенные коды ответов - status: код HTTP-статуса для ответа - type: полное имя MIME-типа или расширение, сопоставленное в этом классе - charset: кодировка символов для тела ответа
__toStringsource public
__toString( )
Преобразование в строку. Извлекает тело ответа как строку. Не отправляет заголовки. Если тело является вызываемым объектом, возвращается пустая строка.
Возвращаемое значение
stringстрока
_clearBuffersource protected
_clearBuffer( )
Очищает содержимое верхнего буфера вывода и удаляет его
Возвращаемое значение
booleanлогическое значение
_fileRangesource protected
_fileRange( Cake\Filesystem\File $file , string $httpRange )
Применяет диапазон файла к файлу и устанавливает конечную позицию.
Если запрашивается некорректный диапазон, в ответе будет использоваться код состояния 416.
Параметры
-
Cake\Filesystem\File$file - Файл, для которого устанавливается диапазон.
- строка
$httpRange - Диапазон для использования.
_getUTCDatesource protected
_getUTCDate( string|integer|DateTime|null $time null )
Возвращает объект DateTime, инициализированный в параметре $time и использующий часовой пояс UTC.
Параметры
- строка|целое число|DateTime|null
$timeнеобязательно null - Действительная строка времени или экземпляр DateTime.
Возвращаемое значение
DateTime\DateTime
_isActivesource protected
_isActive( )
Возвращает true, если соединение всё ещё активное
Возвращаемое значение
booleanлогическое значение
_normalizeCorsDomainssource protected
_normalizeCorsDomains( array $domains , boolean $requestIsSSL false )
Нормализует начало до регулярных выражений и помещает в массив формата
Параметры
- массив
$domains - Имена доменных имён для нормализации.
- логическое значение
$requestIsSSLнеобязательно false - Является ли это запросом SSL.
Возвращаемое значение
arrayмассив
_sendContentsource protected
_sendContent( string|callable $content )
Отправляет строку содержимого клиенту.
Если содержимое является вызываемым объектом, оно вызывается. Вызываемый объект должен либо возвращать строку, либо выводить содержимое непосредственно и не иметь возвращаемого значения.
Параметры
- строка|вызываемый объект
$content - Строка для отправки в качестве тела ответа или вызываемый объект, который возвращает/выводит содержимое.
_sendFilesource protected
_sendFile( Cake\Filesystem\File $file , array $range )
Считывает файл и выводит содержимое клиенту.
Параметры
-
Cake\Filesystem\File$file - Объект файла
- массив
$range - Диапазон для считывания из файла.
Возвращаемое значение
booleanИстина, если весь файл успешно отправлен, или ложь, если соединение с клиентом было потеряно во время передачи
_sendHeadersource protected
_sendHeader( string $name , string|null $value null )
Отправляет заголовок клиенту.
Параметры
- строка
$name - имя заголовка
- строка|null
$valueнеобязательно null - значение заголовка
_setCacheControlsource protected
_setCacheControl( )
Вспомогательный метод для создания действительного заголовка Cache-Control из опций, установленных в других методах
_setContentsource protected
_setContent( )
Устанавливает тело ответа на пустой текст, если код состояния равен 204 или 304
_setContentTypesource protected
_setContentType( )
Форматирует заголовок Content-Type на основе настроенного contentType и charset. charset будет установлен только в заголовке, если тип ответа text/*
_setCookiessource protected
_setCookies( )
Устанавливает куки, которые были добавлены с помощью Cake\Network\Response::cookie() до отправки любого другого вывода клиенту. Куки будут установлены в порядке их установки.
bodysource public
body( string|callable|null $content null )
Буферизует сообщение ответа для отправки. Если $content равно null, возвращается текущий буфер
Параметры
- строка|вызываемый объект|null
$contentнеобязательно null - строка или вызываемый объект-сообщение для отправки
Возвращаемое значение
stringТекущий буфер сообщений, если параметр $content передан как null
cachesource public
cache( string $since , string $time '+1 day' )
Устанавливает правильные заголовки для указания клиенту кэшировать ответ.
Параметры
- строка
$since - действительное время с момента последнего изменения текста ответа
- строка
$timeнеобязательно '+1 day' - действительное время истечения срока действия кэша
charsetsource public
charset( string|null $charset null )
Устанавливает кодировку символов ответа. Если $charset равно null, возвращается текущая кодировка символов
Параметры
- строка|null
$charsetнеобязательно null - Строка кодировки символов.
Возвращаемое значение
stringТекущая кодировка символов
checkNotModifiedsource public
checkNotModified( Cake\Network\Request $request )
Проверяет, не был ли ответ изменен в соответствии с заголовками запроса 'If-None-Match' (Etags) и 'If-Modified-Since' (дата последней модификации). Если ответ определяется как не измененный, он помечается соответствующим образом, чтобы клиент мог об этом узнать.
Для того, чтобы отметить ответ как не измененный, необходимо установить, по крайней мере, заголовок ответа Last-Modified перед вызовом этого метода. В противном случае сравнение не будет возможно.
Параметры
-
Cake\Network\Request$request - Объект запроса
Возвращает
booleanБыла ли помечена реакция как не изменённая или нет.
compresssource public
compress( )
Устанавливает правильный обработчик буферизации вывода для отправки сжатого ответа. Ответы будут сжаты с помощью zlib, если расширение доступно.
Возвращает
booleanfalse, если клиент не принимает сжатые ответы или обработчик недоступен, в противном случае true
cookiesource public
cookie( array|null $options null )
Получение/Установка конфигураций cookie
Этот метод действует как установщик/получатель в зависимости от типа аргумента. Если метод вызывается без аргументов, он возвращает все конфигурации.
Если метод вызывается со строковым аргументом, он возвращает заданную конфигурацию, если она установлена, или null, если она не установлена.
Если метод вызывается с массивом как аргументом, он установит конфигурацию cookie в контейнер cookie.
### Параметры (при установке конфигурации) - name: Имя Cookie - value: Значение cookie - expire: Время истечения cookie - path: Путь, на который распространяется cookie - domain: Домен, для которого предназначен cookie. - secure: Используется ли cookie HTTPS? - httpOnly: Доступен ли cookie в клиенте?
Примеры
Получение всех cookie
$this->cookie()
Получение определенной конфигурации cookie
$this->cookie('MyCookie')
Установка конфигурации cookie
$this->cookie((array) $options)
Параметры
- array|null
$optionsнеобязательно null - Либо null для получения всех cookie, строка для определенного cookie или массив для установки cookie.
Возвращает
mixedсмешанный тип данных
corssource public
cors( Cake\Network\Request $request , string|array $allowedDomains , string|array $allowedMethods [] , string|array $allowedHeaders [] )
Настройка доступа к источнику и методам при кросс-доменных запросах
Этот метод позволяет установить домены несколькими способами, см. примеры
Полный URI
cors($request, 'http://www.cakephp.org');
URI с подстановкой
cors($request, 'http://*.cakephp.org');
Игнорирование запрошенного протокола
cors($request, 'www.cakephp.org');
Любой URI
cors($request, '*');
Список разрешенных URI
cors($request, ['http://www.cakephp.org', '*.google.com', 'https://myproject.github.io']);
Параметры
-
Cake\Network\Request$request - Объект запроса
- string|array
$allowedDomains - Список разрешенных доменов, см. описание метода для получения более подробной информации
- string|array
$allowedMethodsнеобязательно [] - Список разрешенных HTTP-методов
- string|array
$allowedHeadersнеобязательно [] - Список разрешенных HTTP-заголовков
disableCachesource public
disableCache( )
Устанавливает правильные заголовки для инструктирования клиента о не кэшировании ответа
downloadsource public
download( string $filename )
Устанавливает правильные заголовки, чтобы браузер загрузил ответ как файл.
Параметры
- string
$filename - Имя файла, как браузер загрузит ответ
etagsource public
etag( string|null $hash null , boolean $weak false )
Устанавливает Etag ответа. Etag — это сильный индикатор того, что клиент HTTP может кэшировать ответ. Плохой способ генерации Etag — создание хэша выходных данных ответа, вместо этого создайте уникальный хэш уникальных компонентов, которые идентифицируют запрос, таких как время модификации, идентификатор ресурса и все остальное, что вы считаете уникальным.
Второй параметр используется для указания клиентам, что содержимое изменилось, но семантически он может использоваться так же. Например, представьте себе страницу со счетчиком посещений, два разных просмотра страницы эквивалентны, но отличаются на несколько байт. Это оставляет клиенту решение о том, использовать кэшированную страницу или нет.
Если нет параметров, возвращается текущий заголовок Etag.
Параметры
- string|null
$hashнеобязательно null - Уникальный хэш, который идентифицирует этот ответ
- boolean
$weakнеобязательно false - Является ли ответ семантически таким же, как и другие с тем же хэшем или нет
Возвращает
string|nullстрока или null
expiressource public
expires( string|DateTime|null $time null )
Устанавливает заголовок Expires для ответа, принимая время истечения. Если вызов без параметров, он вернет текущее значение Expires.
Примеры:
$response->expires('now') Сбросит кэш ответа сейчас $response->expires(new DateTime('+1 day')) Установит срок действия в следующие 24 часа $response->expires() Вернет текущее значение заголовка истечения
Параметры
- string|DateTime|null
$timeнеобязательно null - Действительная строка времени или экземпляр DateTime.
Возвращает
string|nullстрока или null
filesource public
file( string $path , array $options [] )
Настройка для отображения или загрузки заданного файла.
Если $_SERVER['HTTP_RANGE'] установлено, будет возвращена часть файла вместо всего файла.
Ключи параметров
- name: альтернативное имя загрузки
- download: Если
trueустанавливает заголовок загрузки и принудительно заставляет файл загружаться, а не отображаться в браузере
Параметры
- string
$path - Путь к файлу. Если путь не является абсолютным путем, который разрешается до файла,
APPбудет добавлен к пути. - array
$optionsнеобязательно [] - Параметры См. выше.
Выбрасывает
Cake\Network\Exception\NotFoundException\Cake\Network\Exception\NotFoundException
getMimeTypesource public
getMimeType( string $alias )
Возвращает определение типа MIME для псевдонима
Например getMimeType('pdf'); // returns 'application/pdf'
Параметры
- string
$alias - псевдоним типа контента для отображения
Возвращает
mixedотображаемый тип MIME или false, если $alias не сопоставлен
headersource public
header( string|array|null $header null , string|array|null $value null )
Буферизует строку заголовка для отправки. Возвращает полный список буферизованных заголовков
Один заголовок
header('Location', 'http://example.com');
Несколько заголовков
header(['Location' => 'http://example.com', 'X-Extra' => 'My header']);
Заголовок строки
header('WWW-Authenticate: Negotiate');
Массив строковых заголовков
header(['WWW-Authenticate: Negotiate', 'Content-type: application/pdf']);
Несколько вызовов для установки одного и того же имени заголовка будут иметь тот же эффект, что и установка заголовка один раз с последним отправленным значением для него
header('WWW-Authenticate: Negotiate'); header('WWW-Authenticate: Not-Negotiate');
будет иметь тот же эффект, что и только
header('WWW-Authenticate: Not-Negotiate');
Параметры
- string|array|null
$headerнеобязательно null - Массив строк заголовков или одна строка заголовка - также принимается ассоциативный массив "имя_заголовка" => "значение_заголовка" - также принимается массив строковых заголовков
- string|array|null
$valueнеобязательно null - Значение(я) заголовка
Возвращает
arrayСписок заголовков для отправки
httpCodessource public
httpCodes( integer|array|null $code null )
Запрашивает и устанавливает допустимые HTTP-коды ответов и сообщения.
Параметры
- integer|array|null
$codeнеобязательно null - Если $code — целое число, то соответствующий код/сообщение возвращается, если существует; null, если не существует. Если $code — массив, то ключи используются как коды, а значения — как сообщения для добавления к стандартным HTTP-кодам. Коды должны быть целыми числами, больше 99 и меньше 1000. Имейте в виду, что спецификация HTTP определяет, что коды состояния начинаются с цифры от 1 до 5, что определяет класс ответа, который клиент должен ожидать. Пример: httpCodes(404); // возвращает [404 => 'Не найдено'] httpCodes([ 381 => 'Рог единорога перемещен', 555 => 'Неожиданный минотавр' ]); // устанавливает эти новые значения и возвращает true httpCodes([ 0 => 'Здесь ничего нет', -1 => 'Обратная бесконечность', 12345 => 'Универсальный пароль', 'Привет' => 'Мир' ]); // выводит исключение из-за недопустимых кодов Дополнительная информация о кодах состояния HTTP: http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1
Возвращает
mixedАссоциативный массив с HTTP-кодами в качестве ключей и строками сообщений в качестве значений, или null, если заданный $code не существует.
Выбрасывает
InvalidArgumentExceptionЕсли попытка добавить недопустимый код состояния
lengthsource public
length( integer|null $bytes null )
Устанавливает заголовок Content-Length для ответа Если вызывается без аргументов, возвращает последний установленный Content-Length
Параметры
- integer|null
$bytesнеобязательно null - Количество байтов
Возвращает
integer|nullint|null
locationsource public
location( null|string $url null )
Доступ к заголовку расположения.
Получение/установка значения заголовка Location.
Параметры
- null|string
$urlнеобязательно null - Либо null для получения текущего расположения, либо строка для установки нового.
Возвращает
string|nullПри установке возвращает null. При чтении возвращает строку текущего значения заголовка расположения (если таковое имеется).
mapTypesource public
mapType( string|array $ctype )
Преобразует тип содержимого обратно в псевдоним
Например mapType('application/pdf'); // returns 'pdf'
Параметры
- string|array
$ctype - Тип содержимого для преобразования или массив типов.
Возвращает
string|array|nullПсевдонимы для предоставленных типов.
maxAgesource public
maxAge( integer|null $seconds null )
Устанавливает директиву Cache-Control max-age. max-age — это количество секунд, после которого ответ больше не должен рассматриваться как подходящий для извлечения из локального (клиентского) кэша. При вызове без параметров эта функция возвращает текущее значение max-age, если оно есть
Параметры
- integer|null
$secondsнеобязательно null - Если null, метод вернёт текущее значение max-age
Возвращает
integer|nullint|null
modifiedsource public
modified( string|DateTime|null $time null )
Устанавливает заголовок Last-Modified для ответа, принимая время изменения. При вызове без параметров возвращается текущее значение Last-Modified
Примеры:
$response->modified('now') Установит Last-Modified на текущее время $response->modified(new DateTime('+1 day')) Установит дату изменения в прошлом 24 часа $response->modified() Вернет текущее значение заголовка Last-Modified
Параметры
- string|DateTime|null
$timeнеобязательно null - Действительная строка времени или экземпляр \DateTime.
Возвращает
string|nullstring|null
mustRevalidatesource public
mustRevalidate( boolean|null $enable null )
Устанавливает директиву Cache-Control must-revalidate. must-revalidate указывает, что ответ не должен быть предоставлен устаревшим кэшем при любых обстоятельствах без предварительной повторной проверки с источником. При вызове без параметров эта функция вернет, присутствует ли must-revalidate.
Параметры
- boolean|null
$enableнеобязательно null - Если null, метод вернёт текущее значение must-revalidate. Если boolean, установит или сбросит директиву.
Возвращает
booleanbool
notModifiedsource public
notModified( )
Устанавливает ответ как «Не изменён», удаляя содержимое тела, устанавливая код состояния на «304 Не изменён» и удаляя все конфликтующие заголовки
outputCompressedsource public
outputCompressed( )
Возвращает, будет ли сжатие результата вывода PHP
Возвращает
booleanbool
protocolsource public
protocol( string|null $protocol null )
Устанавливает протокол, который будет использоваться при отправке ответа. По умолчанию HTTP/1.1. Если вызывается без аргументов, вернёт текущий настроенный протокол
Параметры
- string|null
$protocolнеобязательно null - Протокол, который будет использоваться для отправки ответа.
Возвращает
stringТекущий установленный протокол
sendsource public
send( )
Отправляет полный ответ клиенту, включая заголовки и тело сообщения. Выведет содержимое в теле ответа.
sharablesource public
sharable( boolean|null $public null , integer|null $time null )
Устанавливает, может ли ответ быть кэширован промежуточными прокси-серверами. Этот метод управляет директивой public или private в заголовке Cache-Control
Параметры
- boolean|null
$publicнеобязательно null - Если true, заголовок Cache-Control будет установлен как public, если false, ответ будет установлен как private, если значение не указано, он вернет, является ли ответ доступным для совместного использования или нет
- integer|null
$timeнеобязательно null - Время в секундах, после которого ответ больше не должен считаться свежим
Возвращает
boolean|nullbool|null
sharedMaxAgesource public
sharedMaxAge( integer|null $seconds null )
Устанавливает директиву Cache-Control s-maxage. s-maxage — это количество секунд, после которого ответ больше не должен рассматриваться как подходящий для извлечения из общего кэша (например, в прокси-сервере). Если вызывается без параметров, эта функция вернёт текущее значение max-age, если оно есть
Параметры
- integer|null
$secondsнеобязательно null - Если null, метод вернёт текущее значение s-maxage
Возвращает
integer|nullint|null
statusCodesource public
statusCode( integer|null $code null )
Устанавливает HTTP-код состояния, который будет отправлен. Если $code равен null, возвращается текущий код.
Параметры
- integer|null
$codeнеобязательно null - HTTP-код состояния
Возвращает
integerТекущий код состояния
Исключения
InvalidArgumentExceptionПри достижении неизвестного кода состояния.
stopsource public
stop( integer|string $status 0 )
Останавливает выполнение текущего сценария. Оборачивает exit(), что упрощает тестирование.
Параметры
- integer|string
$statusнеобязательно 0 - См. http://php.net/exit для значений
typesource public
type( string|null $contentType null )
Устанавливает тип содержимого ответа. Может быть расширением файла, которое будет сопоставлено с типом MIME внутри, или строкой, представляющей тип MIME. Если $contentType равен null, возвращается текущий тип содержимого. Если $contentType — ассоциативный массив, определения типов содержимого будут сохранены/заменены.
Установка типа содержимого
type('jpg');
Возвращение текущего типа содержимого
type();
Сохранение определений типов содержимого
type(['keynote' => 'application/keynote', 'bat' => 'application/bat']);
Замена определения типа содержимого
type(['jpg' => 'text/plain']);
Параметры
- string|null
$contentTypeнеобязательно null - Ключ типа содержимого.
Возвращает
mixedТекущий тип содержимого или false, если предоставлен некорректный тип содержимого
varysource public
vary( string|array|null $cacheVariances null )
Устанавливает заголовок Vary для ответа. Если передаётся массив, значения будут объединены в строку, разделённую запятыми. Если параметры не передаются, возвращается массив с текущим значением заголовка Vary.
Параметры
- string|array|null
$cacheVariancesнеобязательно null - Одна строка Vary или массив, содержащий список вариаций.
Возвращает
array|nullarray|null
Резюме свойств
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/3.1/class-Cake.Network.Response.html