Класс CakeResponse
CakeResponse отвечает за управление текстом ответа, статусом и заголовками HTTP-ответа.
По умолчанию контроллеры будут использовать этот класс для рендеринга своего ответа. Если вы собираетесь использовать пользовательский класс ответа, он должен быть подклассом этого объекта для обеспечения совместимости.
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: Лицензия MIT
Расположен по адресу Cake/Network/CakeResponse.php
Подробное описание методов
__constructисходный код public
__construct( array $options array() )
Конструктор
Параметры
- массив
$optionsнеобязательно массив() - список параметров для настройки ответа. Возможные значения: - body: текст ответа, который должен быть отправлен клиенту - statusCodes: дополнительные допустимые коды ответа - status: HTTP-код состояния ответа - type: полная строка MIME-типа или расширение, отображаемое в этом классе - charset: кодировка символов для тела ответа
__toStringисходный код public
__toString( )
Преобразование в строку. Извлекает тело ответа как строку. Заголовки не отправляются.
Возвращаемое значение
stringстрока
_clearBufferисходный код protected
_clearBuffer( )
Очищает содержимое верхнего буфера вывода и отбрасывает его
Возвращаемое значение
booleanлогическое значение
_fileRangeисходный код protected
_fileRange( File $file , string $httpRange )
Применяет диапазон файла к файлу и устанавливает конечный смещение.
Если запрошен недопустимый диапазон, в ответе будет использоваться код состояния 416.
Параметры
-
File$file - Файл, для которого устанавливается диапазон.
- строка
$httpRange - Диапазон для использования.
_getUTCDateисходный код protected
_getUTCDate( string|DateTime $time null )
Возвращает объект DateTime, инициализированный параметром $time и использующий часовой пояс UTC
Параметры
- строка|DateTime
$timeнеобязательно null - Допустимая строка времени или метка времени Unix или объект DateTime.
Возвращаемое значение
DateTimeDateTime
_isActiveисходный код protected
_isActive( )
Возвращает true, если соединение все еще активно
Возвращаемое значение
booleanлогическое значение
_normalizeCorsDomainsисходный код protected
_normalizeCorsDomains( array $domains , boolean $requestIsSSL false )
Нормализует начало до регулярных выражений и помещает их в массив
Параметры
- массив
$domains - Домены для нормализации
- логическое значение
$requestIsSSLнеобязательно false - Является ли это запросом SSL.
Возвращаемое значение
arrayмассив
_sendContentисходный код protected
_sendContent( string $content )
Отправляет строку содержимого клиенту.
Параметры
- строка
$content - строка для отправки в качестве тела ответа
_sendFileисходный код protected
_sendFile( File $file , array $range )
Считывает файл и выводит содержимое клиенту.
Параметры
-
File$file - Объект файла
- массив
$range - Диапазон для чтения из файла.
Возвращаемое значение
booleanTrue, если весь файл был успешно выведен, или false, если соединение с клиентом было потеряно
_sendHeaderисходный код protected
_sendHeader( string $name , string $value null )
Отправляет заголовок клиенту.
Пропустит отправку заголовков, если заголовки уже были отправлены.
Параметры
- строка
$name - имя заголовка
- строка
$valueнеобязательно null - значение заголовка
_setCacheControlисходный код protected
_setCacheControl( )
Вспомогательный метод для генерации допустимого заголовка Cache-Control из параметров, установленных в других методах
_setContentисходный код protected
_setContent( )
Устанавливает тело ответа в пустую строку, если код состояния равен 204 или 304
_setContentLengthисходный код protected
_setContentLength( )
Вычисляет правильное значение Content-Length и устанавливает его как заголовок в ответе. Не устанавливает значение, если оно уже установлено или если вывод сжат.
_setContentTypeисходный код protected
_setContentType( )
Форматирует заголовок Content-Type на основе настроенного contentType и charset. charset будет установлен только в заголовке, если тип ответа - текст.
_setCookiesисходный код protected
_setCookies( )
Устанавливает cookie, которые были добавлены с помощью CakeResponse::cookie() перед отправкой любого другого вывода клиенту. Cookie будут установлены в порядке их установки.
bodyисходный код public
body( string $content null )
Буферизует сообщение ответа для отправки, если $content равен null, возвращает текущий буфер.
Параметры
- строка
$contentнеобязательно null - строка сообщения, которое нужно отправить
Возвращаемое значение
stringтекущий буфер сообщений, если параметр $content передан как null
cacheисходный код public
cache( string $since , string $time '+1 day' )
Устанавливает правильные заголовки для указания клиенту кешировать ответ.
Параметры
- строка
$since - допустимое время, с момента последнего изменения текста ответа
- строка
$timeнеобязательно '+1 день' - допустимое время истечения срока действия кеша
charsetисходный код public
charset( string $charset null )
Устанавливает кодировку символов ответа. Если $charset равен null, возвращает текущую кодировку символов.
Параметры
- строка
$charsetнеобязательно null - Строка кодировки символов.
Возвращаемое значение
stringтекущая кодировка символов
checkNotModifiedsource public
checkNotModified( CakeRequest $request )
Проверяет, не был ли ответ изменён согласно заголовкам запроса 'If-None-Match' (Etags) и 'If-Modified-Since' (дата последнего изменения). Если ответ не был изменён, он помечается как таковой, чтобы клиент мог быть об этом проинформирован.
Чтобы пометить ответ как неизменённый, необходимо установить, как минимум, заголовок ответа Last-Modified etag перед вызовом этого метода. В противном случае сравнение будет невозможно.
Параметры
-
CakeRequest$request - Объект запроса
Возвращаемое значение
booleanбыло ли ответ помечен как не изменённый или нет.
compresssource public
compress( )
Устанавливает правильный обработчик буферизации вывода для отправки сжатого ответа. Ответы будут сжаты с помощью zlib, если расширение доступно.
Возвращаемое значение
booleanfalse, если клиент не принимает сжатые ответы или обработчик недоступен, иначе true
cookiesource public
cookie( array $options null )
Получение/Установка настроек cookie
Этот метод работает как setter/getter в зависимости от типа аргумента. Если метод вызван без аргументов, он возвращает все конфигурации.
Если метод вызван со строковым аргументом, он возвращает заданную конфигурацию, если она установлена, или null, если она не установлена.
Если метод вызван с массивом как аргументом, он установит конфигурацию cookie в контейнер cookie.
Параметры
- массив
$optionsнеобязательно null - Либо null для получения всех cookie, строка для определённого 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)
Возвращаемое значение
mixedсмешанное значение
corssource public
cors( CakeRequest $request , string|array $allowedDomains , string|array $allowedMethods array() , string|array $allowedHeaders array() )
Настройка доступа к источнику и методам при кросс-доменных запросах
Этот метод позволяет использовать несколько способов настройки доменов, см. примеры
Полный URI
например cors($request, 'http://www.cakephp.org');
URI с подстановочным знаком
например cors($request, 'http://*.cakephp.org');
Игнорирование запрошенного протокола
например cors($request, 'www.cakephp.org');
Любой URI
например cors($request, '*');
Список разрешённых URI
например cors($request, array('http://www.cakephp.org', '*.google.com', 'https://myproject.github.io'));
Параметры
-
CakeRequest$request - Объект запроса
- строка|массив
$allowedDomains - Список разрешённых доменов, см. описание метода для получения дополнительных подробностей
- строка|массив
$allowedMethodsнеобязательно массив() - Список разрешённых HTTP-методов
- строка|массив
$allowedHeadersнеобязательно массив() - Список разрешённых HTTP-заголовков
disableCachesource public
disableCache( )
Устанавливает правильные заголовки, чтобы запретить кэширование ответа клиентом
downloadsource public
download( string $filename )
Устанавливает правильные заголовки, чтобы браузер загружал ответ как файл.
Параметры
- строка
$filename - имя файла, которое браузер будет использовать для загрузки ответа
etagsource public
etag( string $tag null , boolean $weak false )
Устанавливает заголовок ответа Etag. Etags — это сильный индикатор, что клиент HTTP может кэшировать ответ. Плохой способ генерации Etag — создание хеша выходных данных ответа, вместо этого генерируйте уникальный хеш уникальных компонентов, которые идентифицируют запрос, таких как время модификации, идентификатор ресурса и всё, что вы считаете уникальным.
Второй параметр используется для указания клиентам, что содержимое изменилось, но семантически он может использоваться как то же самое. Например, представьте себе страницу со счётчиком посещений, две разные просмотры страницы эквивалентны, но отличаются несколькими байтами. Это оставляет клиенту решение использовать или нет кэшированную страницу.
Если параметры не переданы, возвращается текущий заголовок Etag.
Параметры
- строка
$tagнеобязательно null - Тег для установки.
- логическое значение
$weakнеобязательно false - Является ли ответ семантически идентичным другим с тем же хешем или нет
Возвращаемое значение
stringстрока
expiressource public
expires( string|DateTime $time null )
Устанавливает заголовок Expires для ответа, взяв время истечения срока действия. Если вызван без параметров, вернёт текущее значение Expires.
Примеры:
$response->expires('now') Будет кэшировать ответ сейчас $response->expires(new DateTime('+1 day')) Установит срок действия через 24 часа $response->expires() Вернёт текущее значение заголовка истечения срока действия
Параметры
- строка|DateTime
$timeнеобязательно null - Действительная строка времени или объект DateTime.
Возвращаемое значение
stringстрока
filesource public
file( string $path , array $options array() )
Настройка для отображения или загрузки указанного файла.
Если $_SERVER['HTTP_RANGE'] установлено, будет возвращена часть файла вместо всего файла.
Ключи опций
- name: Альтернативное имя файла для загрузки
- download: Если
trueустанавливает заголовок загрузки и принудительно загружает файл, а не отображает его в браузере
Параметры
- строка
$path - Путь к файлу. Если путь не является абсолютным путём, разрешающим файл,
APPбудет добавлен в начало пути. - массив
$optionsнеобязательно массив() - Опции см. выше.
Исключения
NotFoundExceptionNotFoundException
getMimeTypesource public
getMimeType( string $alias )
Возвращает определение типа MIME для псевдонима
например getMimeType('pdf'); // returns 'application/pdf'
Параметры
- строка
$alias - псевдоним типа контента для сопоставления
Возвращаемое значение
mixedсопоставленный тип MIME или false, если $alias не сопоставлен
headersource public
header( string|array $header null , string|array $value null )
Буферизует строку заголовка для отправки Возвращает полный список буферизованных заголовков
Один заголовок
например header('Location', 'http://example.com');
Несколько заголовков
например header(array('Location' => 'http://example.com', 'X-Extra' => 'My header'));
Строковый заголовок
например header('WWW-Authenticate: Negotiate');
Массив строковых заголовков
например header(array('WWW-Authenticate: Negotiate', 'Content-type: application/pdf'));
Несколько вызовов для установки одного и того же имени заголовка будут иметь тот же эффект, что и установка заголовка один раз с последним отправленным значением для него, например header('WWW-Authenticate: Negotiate'); header('WWW-Authenticate: Not-Negotiate'); будет иметь тот же эффект, что и только header('WWW-Authenticate: Not-Negotiate');
Параметры
- строка|массив
$headerнеобязательно null - Массив строк заголовков или одна строка заголовка - ассоциативный массив "имя_заголовка" => "значение_заголовка" также принимается - массив строк заголовков также принимается
- строка|массив
$valueнеобязательно null - Значение заголовка(ов)
Возвращаемое значение
arrayсписок заголовков для отправки
httpCodessource public
httpCodes( integer|array $code null )
Запрашивает и устанавливает допустимые HTTP-коды ответов и сообщения.
Параметры
- integer|array
$codeнеобязательно null - Если $code — целое число, возвращается соответствующий код/сообщение, если оно существует, и null, если не существует. Если $code — массив, ключи используются в качестве кодов, а значения — в качестве сообщений для добавления к стандартным HTTP-кодам. Коды должны быть целыми числами больше 99 и меньше 1000. Имейте в виду, что спецификация HTTP определяет, что коды статусов начинаются с цифры от 1 до 5, что определяет класс ответа, который должен ожидать клиент. Пример: httpCodes(404); // возвращает массив (404 => 'Не найдено') httpCodes(array( 381 => 'Единорог переместился', 555 => 'Неожиданный минотавр' )); // устанавливает эти новые значения и возвращает true httpCodes(array( 0 => 'Ничего здесь нет', -1 => 'Обратная бесконечность', 12345 => 'Универсальный пароль', 'Привет' => 'Мир' )); // генерирует исключение из-за недопустимых кодов Для получения дополнительной информации о кодах статуса HTTP см.: http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1
Возвращает
mixedассоциативный массив HTTP-кодов в качестве ключей и строк сообщений в качестве значений или null, если заданный $code не существует.
Исключения
CakeExceptionЕсли будет попытка добавить недопустимый код статуса
lengthsource public
length( integer $bytes null )
Устанавливает заголовок Content-Length для ответа. Если вызывается без аргументов, возвращает последний установленный Content-Length.
Параметры
- integer
$bytesнеобязательно null - Количество байтов
Возвращает
integer|nullint|null
locationsource public
location( null|string $url null )
Доступ к заголовку location.
Получение/установка значения заголовка Location.
Параметры
- null|string
$urlнеобязательно null - null для получения текущего местоположения или строка для его установки.
Возвращает
string|nullПри установке location возвращается null. При чтении location возвращается строка текущего значения заголовка location (если оно есть).
mapTypesource public
mapType( string|array $ctype )
Сопоставляет тип контента с псевдонимом.
Например, mapType('application/pdf'); // returns 'pdf'
Параметры
- string|array
$ctype - Тип контента для сопоставления или массив типов.
Возвращает
mixedПсевдонимы для предоставленных типов.
maxAgesource public
maxAge( integer $seconds null )
Устанавливает директиву Cache-Control max-age. max-age — это количество секунд, после которого ответ больше не должен рассматриваться как подходящий для извлечения из локального (клиентского) кэша. Если вызывается без параметров, эта функция вернет текущее значение max-age, если оно есть.
Параметры
- integer
$secondsнеобязательно null - если null, метод вернет текущее значение max-age
Возвращает
integerint
modifiedsource public
modified( string|DateTime $time null )
Устанавливает заголовок Last-Modified для ответа, используя время изменения. Если вызывается без параметров, она вернет текущее значение Last-Modified.
Примеры:
$response->modified('now') Установит Last-Modified на текущее время $response->modified(new DateTime('+1 day')) Установит дату изменения за последние 24 часа $response->modified() Возвратит текущее значение заголовка Last-Modified
Параметры
- string|DateTime
$timeнеобязательно null - Действительная строка времени или объект DateTime.
Возвращает
stringстрока
mustRevalidatesource public
mustRevalidate( boolean $enable null )
Устанавливает директиву Cache-Control must-revalidate. must-revalidate указывает, что ответ не должен быть предоставлен устаревшим кэшем в любом случае без предварительной перевалидации с источником. Если вызывается без параметров, эта функция вернет, присутствует ли must-revalidate.
Параметры
- boolean
$enableнеобязательно null - Если null, возвращает, установлена ли директива, если boolean, устанавливает или сбрасывает директиву.
Возвращает
booleanbool
notModifiedsource public
notModified( )
Устанавливает ответ как «Не изменён», удаляя содержимое тела, устанавливая код состояния на «304 Не изменён» и удаляя все конфликтующие заголовки.
outputCompressedsource public
outputCompressed( )
Возвращает, будет ли результирующий вывод сжат PHP.
Возвращает
booleanbool
protocolsource public
protocol( string $protocol null )
Устанавливает протокол, который будет использоваться при отправке ответа. По умолчанию HTTP/1.1. Если вызывается без аргументов, она вернёт текущий настроенный протокол.
Параметры
- string
$protocolнеобязательно null - Протокол, который будет использоваться для отправки ответа.
Возвращает
stringтекущий установленный протокол
sendsource public
send( )
Отправляет полный ответ клиенту, включая заголовки и тело сообщения. Выведет содержимое тела ответа.
sharablesource public
sharable( boolean $public null , integer $time null )
Устанавливает, может ли ответ быть кэширован промежуточными прокси-серверами. Этот метод управляет директивой public или private в заголовке Cache-Control.
Параметры
- boolean
$publicнеобязательно null - Если true, заголовок Cache-Control будет установлен как public, если false, ответ будет установлен как private, если значение не указано, вернёт, делится ли ответ или нет.
- integer
$timeнеобязательно null - время в секундах, после которого ответ больше не должен считаться свежим
Возвращает
booleanbool
sharedMaxAgesource public
sharedMaxAge( integer $seconds null )
Устанавливает директиву Cache-Control s-maxage. max-age — это количество секунд, после которого ответ больше не должен рассматриваться как подходящий для извлечения из общего кэша (например, в прокси-сервере). Если вызывается без параметров, эта функция вернет текущее значение max-age, если оно есть.
Параметры
- integer
$secondsнеобязательно null - если null, метод вернет текущее значение s-maxage
Возвращает
integerint
statusCodesource public
statusCode( integer $code null )
Устанавливает HTTP-код состояния, который будет отправлен. Если $code равен null, возвращается текущий код.
Параметры
- integer
$codeнеобязательно null - HTTP-код состояния
Возвращает
integerтекущий код состояния
Исключения
CakeExceptionПри достижении неизвестного кода состояния.
typesource public
type( string $contentType null )
Устанавливает тип содержимого ответа. Это может быть расширение файла, которое будет внутренне сопоставлено с MIME-типом, или строка, представляющая MIME-тип. Если $contentType равен null, возвращается текущий тип содержимого. Если $contentType — ассоциативный массив, определения типов содержимого будут сохранены/заменены.
Установка типа содержимого
Например type('jpg');
Возвращение текущего типа содержимого
Например type();
Сохранение определений типов содержимого
Например type(array('keynote' => 'application/keynote', 'bat' => 'application/bat'));
Замена определения типа содержимого
Например type(array('jpg' => 'text/plain'));
Параметры
- строка
$contentTypeнеобязательно null - Ключ типа содержимого.
Возвращаемое значение
mixedтекущий тип содержимого или false, если предоставлен недопустимый тип содержимого
varysource public
vary( string|array $cacheVariances null )
Устанавливает заголовок Vary для ответа. Если передается массив, значения будут объединены в строку, разделенную запятыми. Если параметры не передаются, возвращается массив с текущим значением заголовка Vary.
Параметры
- строка|массив
$cacheVariancesнеобязательно null - одна строка Vary или массив, содержащий список вариантов.
Возвращаемое значение
arrayмассив
Краткое описание свойств
© 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/2.7/class-CakeResponse.html