Класс CakeRequest
Класс, который помогает обернуть информацию о запросе и подробности по одному запросу. Предоставляет методы, обычно используемые для интроспекции заголовков запроса и тела запроса.
Имеет интерфейс как массива, так и объекта. Вы можете получить доступ к параметрам фреймворка, используя индексы:
$request['controller'] или $request->controller.
- CakeRequest реализует ArrayAccess
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение Cake/Network/CakeRequest.php
Подробное описание методов
__callsource public
__call( string $name , array $params )
Обработчик отсутствующего метода, обрабатывает обертывание методов старого стиля, таких как isAjax()
Параметры
- string
$name - Вызываемый метод
- массив
$params - Массив параметров для вызова метода
Возвращает
mixedсмешанный тип
Исключения
CakeExceptionпри вызове недопустимого метода.
__constructsource public
__construct( string $url null , boolean $parseEnvironment true )
Конструктор
Параметры
- строка
$urlнеобязательно null - Строка отформатированного URL для использования. Не должна содержать базовый путь приложения.
- логическое значение
$parseEnvironmentнеобязательно true - Установите в значение false, чтобы не автоматически анализировать среду. Например, GET, POST и FILES.
__getsource public
__get( string $name )
Магический метод получения позволяет напрямую получить доступ к параметрам маршрутизации в объекте.
Разрешает доступ к $this->params['controller'] через $this->controller
Параметры
- строка
$name - Доступное свойство.
Возвращает
mixedЛибо значение параметра, либо null.
__issetsource public
__isset( string $name )
Магический метод isset позволяет проверять существование параметров маршрутизации с помощью isset/empty.
Параметры
- строка
$name - Доступное свойство.
Возвращает
booleanСуществование
_acceptHeaderDetectorsource protected
_acceptHeaderDetector( array $detect )
Определяет, присутствует ли определенный заголовок accept.
Параметры
- массив
$detect - Массив параметров детектора.
Возвращает
booleanПрисутствует ли запрос заданного типа.
_basesource protected
_base( )
Возвращает базовый URL и устанавливает правильный webroot
Если CakePHP вызывается с index.php в URL, даже если перенаправление URL включено (и, следовательно, не требуется), оно удаляет ненужную часть из $base, чтобы предотвратить ошибку #3318.
Возвращает
stringБазовый URL
Ссылка
https://cakephp.lighthouseapp.com/projects/42648-cakephp/tickets/3318_environmentDetectorsource protected
_environmentDetector( array $detect )
Определяет, присутствует ли определенная переменная среды.
Параметры
- массив
$detect - Массив параметров детектора.
Возвращает
booleanПрисутствует ли запрос заданного типа.
_extensionDetectorsource protected
_extensionDetector( array $detect )
Определяет, присутствует ли расширение URL.
Параметры
- массив
$detect - Массив параметров детектора.
Возвращает
booleanПрисутствует ли запрос заданного типа.
_headerDetectorsource protected
_headerDetector( array $detect )
Определяет, присутствует ли определенный заголовок.
Параметры
- массив
$detect - Массив параметров детектора.
Возвращает
booleanПрисутствует ли запрос заданного типа.
_paramDetectorsource protected
_paramDetector( array $detect )
Определяет, присутствует ли определенный параметр запроса.
Параметры
- массив
$detect - Массив параметров детектора.
Возвращает
booleanПрисутствует ли запрос заданного типа.
_parseAcceptWithQualifiersource protected static
_parseAcceptWithQualifier( string $header )
Анализ заголовков Accept* с опциями квалификатора.
Извлекаются только квалификаторы, любые другие расширения accept отбрасываются, так как они редко используются.
Параметры
- строка
$header - Заголовок для анализа.
Возвращает
arrayмассив
_processFileDatasource protected
_processFileData( string $path , array $data , string $field )
Рекурсивно проходит по массиву FILES, перестраивая данные в осмысленную и удобную структуру.
Параметры
- строка
$path - Путь с разделителями точек для вставки $data.
- массив
$data - Данные для обхода/вставки.
- строка
$field - Имя терминального поля, которое является ключом верхнего уровня в $_FILES.
_processPostsource protected
_processPost( )
Обработка данных POST и установка полученных данных в объект. Обработанные данные доступны в $this->data
Объединяет переменные POST с префиксом data, и без него в один массив. Переменные с префиксом data перезаписывают переменные без префикса.
Если у вас есть смешанные значения POST, будьте осторожны, чтобы не создавать числовые ключи верхнего уровня, содержащие массивы. Для объединения данных используется Hash::merge(), и в этой ситуации это может иметь неожиданное поведение.
_readInputsource protected
_readInput( )
Чтение данных из php://input, имитируется в тестах.
Возвращает
stringсодержимое php://input
_urlsource protected
_url( )
Получение URI запроса. Сначала проверяется PATH_INFO, так как это точное значение, подготовленное PHP. После этого проверяются REQUEST_URI, PHP_SELF, HTTP_X_REWRITE_URL и argv в указанном порядке. Каждая из этих переменных сервера имеет базовый путь и удаленные строки запроса.
Возвращает
stringURI Путь запроса CakePHP, к которому осуществляется доступ.
acceptLanguagesource public static
acceptLanguage( string $language null )
Получить языки, принятые клиентом, или проверить, принимается ли конкретный язык.
Получить список принятых языков:
CakeRequest::acceptLanguage();
Проверить, принимается ли конкретный язык:
CakeRequest::acceptLanguage('es-es');
Параметры
- строка
$languageнеобязательно null - Язык для проверки.
Возвращаемое значение
mixedЕсли предоставлен $language, возвращается boolean. В противном случае — массив принятых языков.
acceptssource public
accepts( string $type null )
Определить, какие типы контента принимает клиент, или проверить, принимает ли он определенный тип контента.
Получить все типы:
$this->request->accepts();
Проверка на наличие одного типа:
$this->request->accepts('application/json');
Этот метод отсортирует возвращаемые типы контента по значениям приоритетов, указанным клиентом.
Параметры
- строка
$typeнеобязательно null - Тип контента для проверки. Для получения всех типов, которые принимает клиент, оставьте null.
Возвращаемое значение
mixedЛибо массив всех типов, которые принимает клиент, либо boolean, если он принимает указанный тип.
addDetectorsource public
addDetector( string $name , array $options )
Добавить новый детектор в список детекторов, которые может использовать запрос. Существует несколько разных форматов и типов детекторов, которые можно задать.
Сравнение значений среды
Сравнение значений среды сравнивает значение, полученное из env() с известным значением. Сравнивается по равенству.
Например: addDetector('post', array('env' => 'REQUEST_METHOD', 'value' => 'POST'))
Сравнение значений по шаблону
Сравнение значений по шаблону позволяет сравнить значение, полученное из env() с регулярным выражением.
Например: addDetector('iphone', array('env' => 'HTTP_USER_AGENT', 'pattern' => '/iPhone/i'));
Сравнение на основе опций
Сравнение на основе опций использует список опций для создания регулярного выражения. Последующие вызовы добавления уже определенного детектора опций объединят опции.
Например: addDetector('mobile', array('env' => 'HTTP_USER_AGENT', 'options' => array('Fennec')));
Детекторы обратных вызовов
Детекторы обратных вызовов позволяют предоставить обратный вызов для обработки проверки. Обратный вызов получит объект запроса в качестве единственного параметра.
Например: addDetector('custom', array('callback' => array('SomeClass', 'somemethod')));
Детекторы параметров запроса
Позволяет создавать пользовательские детекторы параметров запроса.
Например: addDetector('requested', array('param' => 'requested', 'value' => 1)
Вы также можете создавать детекторы параметров, которые принимают несколько значений, используя ключ options. Это полезно, когда вам нужно проверить, содержится ли параметр запроса в списке опций.
addDetector('extension', array('param' => 'ext', 'options' => array('pdf', 'csv'))
Параметры
- строка
$name - Имя детектора.
- массив
$options - Опции для определения детектора. См. выше.
addParamssource public
addParams( array $params )
Добавить параметры к набору обработанных параметров запроса. Это перезапишет все существующие параметры. Это изменяет параметры, доступные через $request->params.
Параметры
- массив
$params - Массив параметров для объединения.
Возвращаемое значение
selfself
addPathssource public
addPaths( array $paths )
Добавить пути к переменным путей запроса. Это перезапишет все существующие пути. Предлагает простой способ изменить webroot и base.
Параметры
- массив
$paths - Массив путей для объединения.
Возвращаемое значение
selfself
allowMethodsource public
allowMethod( string|array $methods )
Разрешить только определенные методы HTTP-запросов. Если метод запроса не совпадает, будет показана ошибка 405, и будет установлен необходимый заголовок ответа «Allow».
Пример:
$this->request->allowMethod('post', 'delete'); или $this->request->allowMethod(array('post', 'delete'));
Если запрос будет GET, будет установлен заголовок ответа «Allow: POST, DELETE», и будет возвращена ошибка 405.
Параметры
- строка|массив
$methods - Разрешенные методы HTTP-запросов.
Возвращаемое значение
booleantrue
Исключения
MethodNotAllowedExceptionMethodNotAllowedException
clientIpsource public
clientIp( boolean $safe true )
Получить IP-адрес клиента, который он использует или сообщает, что использует.
Параметры
- boolean
$safeнеобязательно true - Используйте safe = false, когда вы думаете, что пользователь может манипулировать заголовком HTTP_CLIENT_IP. Установка $safe = false также проверит HTTP_X_FORWARDED_FOR
Возвращаемое значение
stringIP-адрес клиента.
datasource public
data( string $name )
Обеспечивает чтение/запись доступа к $this->data. Позволяет использовать синтаксис, аналогичный синтаксису CakeSession для чтения данных POST.
Чтение значений.
$request->data('Post.title');
При чтении значений вы получите null для ключей/значений, которых нет.
Запись значений
$request->data('Post.title', 'New post!');
Вы можете записывать любые значения, даже пути/ключи, которых нет, и массивы будут созданы для вас.
Параметры
- строка
$name - Разделенное точкой имя значения для чтения/записи, один или несколько аргументов.
Возвращаемое значение
mixed|selfЛибо считываемое значение, либо $this, чтобы вы могли цеплять последовательные записи.
domainsource public
domain( integer $tldLength 1 )
Получить доменное имя и включить сегменты $tldLength доменной зоны.
Параметры
- целое число
$tldLengthнеобязательно 1 - Количество сегментов, которые содержит ваша доменная зона. Например:
example.comсодержит 1 доменную зону. В то время какexample.co.ukсодержит 2.
Возвращаемое значение
stringДоменное имя без поддоменов.
headersource public static
header( string $name )
Прочитать HTTP-заголовок из информации запроса.
Параметры
- строка
$name - Имя заголовка, который вы хотите получить.
Возвращаемое значение
mixedЛибо false, если заголовок не задан, либо значение заголовка.
heresource public
here( boolean $base true )
Получить значение текущего URL-адреса запроса. Будет включать именованные параметры и аргументы строки запроса.
Параметры
- boolean
$baseнеобязательно true - Включить базовый путь, установить в false, чтобы удалить базовый путь.
Возвращаемое значение
stringТекущий URL-адрес запроса, включая аргументы строки запроса.
hostsource public
host( boolean $trustProxy false )
Получить хост, на котором обрабатывался запрос.
Параметры
- boolean
$trustProxyнеобязательно false - Доверять ли хосту прокси.
Возвращаемое значение
stringстрока
inputsource public
input( string $callback null )
Прочитать данные из php://input. Полезно при взаимодействии с XML или JSON содержимым тела запроса.
Получение входных данных с функцией декодирования:
$this->request->input('json_decode');
Получение входных данных с помощью функции декодирования и дополнительных параметров:
$this->request->input('Xml::build', array('return' => 'DOMDocument'));
Любые дополнительные параметры применяются к обратному вызову в порядке их предоставления.
Параметры
- строка
$callbackнеобязательно null - Функция обратного вызова для декодирования, которая преобразует строковые данные в другое представление. Оставьте пустым, чтобы получить исходные входные данные. Вы также можете предоставить дополнительные параметры для функции обратного вызова декодирования, см. выше.
Возвращаемое значение
Theдекодированные/обработанные данные запроса.
issource public
is( string|array $type )
Проверка, является ли запрос определенного типа.
Использует встроенные правила распознавания, а также дополнительные правила, определенные с помощью CakeRequest::addDetector(). Любой детектор может вызываться как is($type) или is$Type().
Параметры
- строка|массив
$type - Тип запроса, который нужно проверить. Если массив, этот метод вернет true, если запрос соответствует любому типу.
Возвращает
booleanЯвляется ли запрос указанного типа.
isAllsource public
isAll( array $types )
Проверка соответствия запроса всем указанным типам.
Позволяет проверять несколько типов и объединять результаты. Смотрите CakeRequest::is() для получения информации о добавлении дополнительных типов и встроенных типов.
Параметры
- массив
$types - Типы для проверки.
Возвращает
booleanУспех.
См. также
CakeRequest::is()methodsource public
method( )
Получение HTTP-метода, используемого для этого запроса. Существует несколько способов указания метода.
- Если ваш клиент поддерживает, можно использовать собственные HTTP-методы.
- Можно установить заголовок HTTP-X-Method-Override.
- Можно отправить входные данные с именем
_method
Любой из этих 3 подходов можно использовать для установки HTTP-метода, используемого CakePHP внутри, и это повлияет на результат этого метода.
Возвращает
stringИмя используемого HTTP-метода.
offsetExistssource public
offsetExists( string $name )
Реализация isset() для доступа к массиву.
Параметры
- строка
$name - Элемент для проверки.
Возвращает
booleanbool
Реализация
ArrayAccess::offsetExists() offsetGetsource public
offsetGet( string $name )
Реализация чтения для доступа к массиву.
Параметры
- строка
$name - Имя ключа, к которому осуществляется доступ.
Возвращает
mixedсмешанное
Реализация
ArrayAccess::offsetGet() offsetSetsource public
offsetSet( string $name , mixed $value )
Реализация записи для доступа к массиву.
Параметры
- строка
$name - Имя ключа, в который записывается значение.
- смешанное
$value - Записываемое значение.
Реализация
ArrayAccess::offsetSet() offsetUnsetsource public
offsetUnset( string $name )
Реализация unset() для доступа к массиву.
Параметры
- строка
$name - Имя ключа, который нужно удалить.
Реализация
ArrayAccess::offsetUnset() onlyAllowsource public
onlyAllow( string|array $methods )
Псевдоним CakeRequest::allowMethod() для обратной совместимости.
Устарело
3.0.0 С версии 2.5 используйте CakeRequest::allowMethod().Параметры
- строка|массив
$methods - Разрешенные HTTP-методы запроса.
Возвращает
booleantrue
Выбрасывает
MethodNotAllowedExceptionMethodNotAllowedException
См. также
CakeRequest::allowMethod()paramsource public
param( string $name )
Безопасный доступ к значениям в $this->params.
Параметры
- строка
$name - Имя параметра для получения.
Возвращает
mixedЗначение предоставленного параметра. Вернет false, если параметр не существует или имеет ложное значение.
parseAcceptsource public
parseAccept( )
Парсинг заголовка HTTP_ACCEPT и возврат отсортированного массива с типами содержимого в качестве ключей и значениями pref.
В целом, для получения простого списка принятых типов содержимого, вы хотите использовать CakeRequest::accept().
Возвращает
arrayМассив prefValue => массив(типов содержимого)
querysource public
query( string $name )
Предоставляет доступ к $this->query. Позволяет использовать синтаксис, похожий на CakeSession для чтения данных запроса URL.
Параметры
- строка
$name - Имя переменной строки запроса.
Возвращает
mixedСчитываемое значение
referersource public
referer( boolean $local false )
Возвращает ссылку, которая направила этот запрос.
Параметры
- boolean
$localнеобязательно false - Попытка вернуть локальный адрес. Локальные адреса не содержат хост-имен.
Возвращает
stringАдрес, направивший этот запрос.
setInputsource public
setInput( string $input )
Изменение данных, изначально полученных из php://input. Полезно для изменения данных json/xml в промежуточном ПО или фильтрах Dispatcher перед передачей в RequestHandlerComponent.
Параметры
- строка
$input - Строка, заменяющая исходные проанализированные данные из input()
subdomainssource public
subdomains( integer $tldLength 1 )
Получение поддоменов для хоста.
Параметры
- целое число
$tldLengthнеобязательно 1 - Количество сегментов, содержащихся в вашей tld. Например:
example.comсодержит 1 tld. В то время какexample.co.ukсодержит 2.
Возвращает
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-CakeRequest.html