Класс Request
Класс, помогающий обернуть информацию о запросе и особенности одного запроса. Предоставляет методы, обычно используемые для интроспекции заголовков запроса и тела запроса.
Обладает интерфейсом массива и объекта. Вы можете получить доступ к параметрам фреймворка, используя индексы:
$request['controller'] или $request->controller.
- Cake\Network\Request реализует ArrayAccess
Подробное описание метода
__callsource public
__call( string $name , array $params )
Обработчик отсутствующего метода, обрабатывает обертывание методов старого стиля, таких как isAjax()
Параметры
- строка
$name - Вызываемый метод
- массив
$params - Массив параметров для вызова метода
Возвращает
mixedсмешанный тип
Исключения
BadMethodCallExceptionпри вызове недопустимого метода.
__constructsource public
__construct( string|array $config [] )
Создаёт новый объект запроса.
Вы можете предоставить данные в виде массива или строки. Если вы используете строку, вы можете указать только URL запроса. Использование массива позволит вам предоставить следующие ключи:
-
postДанные POST или данные, не являющиеся частью строки запроса -
queryДополнительные данные из строки запроса. -
filesДанные загруженных файлов, отформатированные как $_FILES. -
cookiesКуки для этого запроса. -
environmentДанные $_SERVER и $_ENV. -
urlURL без базового пути для запроса. -
baseБазовый URL для запроса. -
webrootДиректория webroot для запроса. -
inputДанные, которые пришли бы из php://input, это полезно для имитации -
sessionЭкземпляр объекта Session для запросов с данными put, patch или delete.
Параметры
- строка|массив
$configнеобязательно [] - Массив данных запроса для создания запроса.
__getsource public
__get( string $name )
Магический метод get позволяет напрямую получить доступ к параметрам маршрутизации в объекте.
Позволяет получить доступ к $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 static
_base( )
Возвращает базовый URL и устанавливает правильный webroot
Если CakePHP вызывается с index.php в URL, даже если URL-перезапись активирована (и, следовательно, не нужна), она проглатывает ненужную часть от $base, чтобы предотвратить проблему #3318.
Возвращает
arrayБазовый URL, директория webroot, заканчивающаяся на /
Ссылка
https://cakephp.lighthouseapp.com/projects/42648-cakephp/tickets/3318_environmentDetectorsource protected
_environmentDetector( array $detect )
Определяет, присутствует ли определённая переменная среды.
Параметры
- массив
$detect - Массив опций определителя.
Возвращает
booleanСоответствует ли запрос нужному типу.
_headerDetectorsource protected
_headerDetector( array $detect )
Определяет, присутствует ли определённый заголовок.
Параметры
- массив
$detect - Массив опций определителя.
Возвращает
booleanСоответствует ли запрос нужному типу.
_issource protected
_is( string|array $type )
Вспомогательная функция для public функции is()
Параметры
- строка|массив
$type - Тип запроса, который нужно проверить. Если массив, этот метод вернёт true, если запрос соответствует любому типу.
Возвращает
booleanСоответствует ли запрос нужному типу.
_paramDetectorsource protected
_paramDetector( array $detect )
Определяет, присутствует ли определённый параметр запроса.
Параметры
- массив
$detect - Массив опций определителя.
Возвращает
booleanСоответствует ли запрос нужному типу.
_parseAcceptWithQualifiersource protected
_parseAcceptWithQualifier( string $header )
Разбирает заголовки Accept* с квалификаторами.
Извлекаются только квалификаторы, любые другие расширения accept будут отброшены, так как они редко используются.
Параметры
- строка
$header - Заголовок для разбора.
Возвращает
arrayмассив
_processFileDatasource protected
_processFileData( array $data , array $post , string $path '' , string $field '' )
Рекурсивно обходит массив FILES, перестраивая данные в осмысленный и применимый вид.
Параметры
- массив
$data - Данные, которые строятся
- массив
$post - Данные POST, по которым происходит итерация
- строка
$pathнеобязательно '' - Путь с точками для вставки $data.
- строка
$fieldнеобязательно '' - Конечное поле в пути. Это одно из свойств $_FILES, например, name, tmp_name, size, error
Возвращает
arrayПерестроенные данные FILES
_processFilessource protected
_processFiles( array $post , array $files )
Обрабатывает загруженные файлы и перемещает их в данные POST.
Параметры
- массив
$post - Данные POST для слияния с файлами.
- массив
$files - Загруженные файлы для слияния.
Возвращает
arrayОбъединённые данные POST + файлы.
_processGetsource protected
_processGet( array $query )
Обрабатывает параметры GET и перемещает их в объект.
Параметры
- массив
$query - Массив, в который добавляются обработанные ключи/значения.
Возвращает
arrayМассив, содержащий обработанные ключи/значения строки запроса.
_processPostsource protected
_processPost( array $data )
Устанавливает переменную среды REQUEST_METHOD на основе значения симуляции _method HTTP-переопределения. Также сохраняется 'ORIGINAL_REQUEST_METHOD', если вам нужно получить исходный HTTP-метод, использованный клиентом.
Параметры
- массив
$data - Массив данных POST.
Возвращает
arrayмассив
_readInputsource protected
_readInput( )
Считывает данные из php://input, в тестах имитируется.
Возвращаемое значение
stringсодержимое php://input
_setConfigsource protected
_setConfig( array $config )
Обрабатывает данные конфигурации/настроек в свойства.
Параметры
- массив
$config - Данные конфигурации для использования.
_urlsource protected static
_url( array $config )
Получить URI запроса. Сначала ищется в PATH_INFO, так как это точное значение, которое нам нужно подготовить PHP. После этого проверяются REQUEST_URI, PHP_SELF, HTTP_X_REWRITE_URL и argv в указанном порядке. Каждая из этих переменных сервера имеет базовый путь и удаленные строки запроса.
Параметры
- массив
$config - Настройки для установки.
Возвращаемое значение
stringURI Путь запроса CakePHP, к которому осуществляется доступ.
acceptLanguagesource public
acceptLanguage( string|null $language null )
Получить языки, принятые клиентом, или проверить, принят ли определенный язык.
Получить список принятых языков:
\Cake\Network\Request::acceptLanguage();
Проверить, принят ли определенный язык:
\Cake\Network\Request::acceptLanguage('es-es');
Параметры
- строка|null
$languageнеобязательно null - Язык для проверки.
Возвращаемое значение
array|booleanЕсли предоставлен $language, булево значение. В противном случае массив принятых языков.
acceptssource public
accepts( string|null $type null )
Определить, какие типы содержимого принимает клиент, или проверить, принимает ли он определенный тип содержимого.
Получить все типы:
$this->request->accepts();
Проверка одного типа:
$this->request->accepts('application/json');
Этот метод отсортирует возвращаемые типы содержимого в соответствии с указанными клиентом значениями приоритета.
Параметры
- строка|null
$typeнеобязательно null - Тип содержимого для проверки. Оставьте null, чтобы получить все типы, принимаемые клиентом.
Возвращаемое значение
array|booleanЛибо массив всех типов, принимаемых клиентом, либо булево значение, если клиент принимает указанный тип.
addDetectorsource public static
addDetector( string $name , callable|array $callable )
Добавить новый детектор в список детекторов, которые может использовать запрос. Можно задать несколько различных форматов и типов детекторов.
Детекторы обратного вызова
Детекторы обратного вызова позволяют предоставить вызываемую функцию для обработки проверки. Обратный вызов получит объект запроса в качестве единственного параметра.
addDetector('custom', function ($request) { //Return a boolean }); addDetector('custom', ['SomeClass', 'somemethod']);
Сравнение значений среды
Сравнение значений среды сравнивает значение, полученное из env() с известным значением, при этом выполняется проверка равенства.
Например addDetector('post', ['env' => 'REQUEST_METHOD', 'value' => 'POST'])
Сравнение значений шаблона
Сравнение значений шаблона позволяет сравнить значение, полученное из env() с регулярным выражением.
addDetector('iphone', ['env' => 'HTTP_USER_AGENT', 'pattern' => '/iPhone/i']);
Сравнение на основе опций
Сравнения на основе опций используют список опций для создания регулярного выражения. Последующие вызовы для добавления уже определенного детектора опций объединят опции.
addDetector('mobile', ['env' => 'HTTP_USER_AGENT', 'options' => ['Fennec']]);
Детекторы параметров запроса
Позволяет использовать пользовательские детекторы параметров запроса.
Например addDetector('requested', ['param' => 'requested', 'value' => 1]
Вы также можете создать детекторы параметров, принимающие несколько значений, используя ключ options. Это полезно, когда нужно проверить, входит ли параметр запроса в список опций.
addDetector('extension', ['param' => 'ext', 'options' => ['pdf', 'csv']]
Параметры
- строка
$name - Название детектора.
- вызываемая функция|массив
$callable - Вызываемая функция или массив опций для определения детектора.
addParamssource public
addParams( array $params )
Добавить параметры к набору параметров запроса. Это перезапишет все существующие параметры. Это изменяет доступные параметры через $request->params.
Параметры
- массив
$params - Массив параметров для объединения.
Возвращаемое значение
mixed$this Текущий объект, вы можете использовать цепочку вызовов этого метода.
addPathssource public
addPaths( array $paths )
Добавить пути к переменным путей запроса. Это перезапишет все существующие пути. Предоставляет простой способ изменения, здесь, webroot и base.
Параметры
- массив
$paths - Массив путей для объединения.
Возвращаемое значение
mixed$this Текущий объект, вы можете использовать цепочку вызовов этого метода.
allowMethodsource public
allowMethod( string|array $methods )
Разрешить только определенные методы HTTP-запроса, если метод запроса не соответствует, будет показана ошибка 405, и будет установлен необходимый заголовок ответа «Allow».
Пример:
$this->request->allowMethod('post'); или $this->request->allowMethod(['post', 'delete']);
Если запрос будет GET, заголовок ответа "Allow: POST, DELETE" будет установлен, и будет возвращена ошибка 405.
Параметры
- строка|массив
$methods - Разрешенные методы HTTP-запроса.
Возвращаемое значение
booleantrue
Исключения
Cake\Network\Exception\MethodNotAllowedException\Cake\Network\Exception\MethodNotAllowedException
clearDetectorCachesource public
clearDetectorCache( )
Очищает кэш детектора экземпляра, используемый функцией is()
clientIpsource public
clientIp( )
Получить IP-адрес клиента или IP-адрес, который он указал.
Возвращаемое значение
stringIP-адрес клиента.
contentTypesource public
contentType( )
Получить тип содержимого, используемый в этом запросе.
Возвращаемое значение
stringстрока
cookiesource public
cookie( string $key )
Считывает данные cookie из данных cookie запроса.
Параметры
- строка
$key - Ключ, который нужно прочитать.
Возвращаемое значение
null|stringЗначение cookie или null, если значение не существует.
createFromGlobalssource public static
createFromGlobals( )
Метод-обертка для создания нового запроса из PHP суперглобальных переменных.
Использует данные $_GET, $_POST, $_FILES, $_COOKIE, $_SERVER, $_ENV и php://input для построения запроса.
Возвращаемое значение
Cake\Network\Request\Cake\Network\Request
datasource public
data( string|null $name null )
Предоставляет чтение/запись для $this->data. Позволяет использовать синтаксис, похожий на Cake\Model\Datasource\Session для чтения данных POST.
Чтение значений.
$request->data('Post.title');
При чтении значений вы получите null для ключей/значений, которых нет.
Запись значений
$request->data('Post.title', 'New post!');
Вы можете записать любое значение, даже пути/ключи, которых нет, и массивы будут созданы для вас.
Параметры
- строка|null
$nameнеобязательно null - Имя значения с точками для чтения/записи
Возвращаемое значение
mixed|$this$this Либо считываемое значение, либо this, чтобы вы могли цепочку последовательных записей.
domainsource public
domain( integer $tldLength 1 )
Получить доменное имя, включая $tldLength сегментов доменной зоны.
Параметры
- целое число
$tldLengthнеобязательно 1 - Количество сегментов, содержащихся в доменной зоне. Например:
example.comсодержит 1 доменную зону. В то время какexample.co.ukсодержит 2.
Возвращает
stringДоменное имя без поддоменов.
envsource public
env( string $key , string|null $value null , string|null $default null )
Получить/установить значение из данных среды запроса. Используется значение по умолчанию env(), если ключ не задан в свойстве $environment.
Параметры
- строка
$key - Ключ, который нужно читать/записывать.
- строка|null
$valueнеобязательно null - Значение для установки. По умолчанию null.
- строка|null
$defaultнеобязательно null - Значение по умолчанию при попытке получить значение переменной среды, которое не существует. Параметр value должен быть null.
Возвращает
mixed$this|строка|null Этот экземпляр, если используется в качестве установщика, если используется в качестве получателя, либо значение среды, либо null, если значение не существует.
headersource public
header( string $name )
Чтение HTTP-заголовка из информации запроса.
Параметры
- строка
$name - Имя заголовка, который нужно получить.
Возвращает
string|nullЛибо null, если заголовок не задан, либо значение заголовка.
heresource public
here( boolean $base true )
Получить значение текущего URL запроса. Будет включать аргументы запроса.
Параметры
- boolean
$baseнеобязательно true - Включить базовый путь, установить в false для удаления базового пути.
Возвращает
stringТекущий URL запроса, включая аргументы запроса.
inputsource public
input( string|null $callback null )
Чтение данных из php://input. Полезно при работе с XML или JSON содержимым тела запроса.
Получение ввода с функцией декодирования:
$this->request->input('json_decode');
Получение ввода с помощью функции декодирования и дополнительных параметров:
$this->request->input('Xml::build', ['return' => 'DOMDocument']);
Любые дополнительные параметры применяются к обратной функции в том порядке, в котором они указаны.
Параметры
- строка|null
$callbackнеобязательно null - Функция декодирования, которая преобразует строковые данные в другое представление. Оставьте пустой для доступа к необработанным входным данным. Вы также можете передать дополнительные параметры для функции декодирования с помощью varargs, см. выше.
Возвращает
stringДекодированные/обработанные данные запроса.
issource public
is( string|array $type )
Проверить, является ли запрос определенного типа.
Использует встроенные правила обнаружения, а также дополнительные правила, определенные с помощью Cake\Network\CakeRequest::addDetector(). Любой детектор может вызываться как is($type) или is$Type().
Параметры
- строка|массив
$type - Тип запроса, который нужно проверить. Если массив, этот метод вернет true, если запрос соответствует любому типу.
Возвращает
booleanСоответствует ли запрос типу, который вы проверяете.
isAllsource public
isAll( array $types )
Проверить, что запрос соответствует всем указанным типам.
Позволяет проверить несколько типов и объединить результаты. См. Request::is() для добавления дополнительных типов и встроенных типов.
Параметры
- массив
$types - Типы для проверки.
Возвращает
booleanУспех.
См.
Cake\Network\Request::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() paramsource public
param( string $name )
Безопасный доступ к значениям в $this->params.
Параметры
- строка
$name - Имя параметра для получения.
Возвращает
mixed|$this$this Значение предоставленного параметра. Вернёт false, если параметр не существует или является ложным.
parseAcceptsource public
parseAccept( )
Парсинг заголовка HTTP_ACCEPT и возвращение отсортированного массива с типами содержимого в качестве ключей и значениями в качестве значений pref.
В целом, для получения простого списка принимаемых типов содержимого используйте Cake\Network\Request::accept().
Возвращает
arrayМассив prefValue => [типы содержимого]
querysource public
query( string $name )
Предоставляет метод доступа для $this->query. Позволяет использовать синтаксис, аналогичный CakeSession для чтения данных запроса URL.
Параметры
- строка
$name - Имя переменной строки запроса
Возвращает
mixedЧитаемое значение
referersource public
referer( boolean $local false )
Возвращает referer, который направил этот запрос.
Параметры
- boolean
$localнеобязательно false - Попытка вернуть локальный адрес. Локальные адреса не содержат имен хостов.
Возвращаемые значения
stringАдрес, направивший данный запрос.
schemesource public
scheme( )
Получить текущий используемый схему URL для запроса.
Например: 'http' или 'https'
Возвращаемые значения
stringСхема, используемая для запроса.
sessionsource public
session( Cake\Network\Session $session null )
Возвращает экземпляр объекта Session для этого запроса.
Если объект сессии передан в качестве первого аргумента, он будет установлен в качестве сессии для использования в этом запросе.
Параметры
-
Cake\Network\Session$sessionнеобязательно null - объект сессии для использования
Возвращаемые значения
Cake\Network\Session\Cake\Network\Session
setInputsource public
setInput( string $input )
Изменить данные, изначально полученные из php://input. Полезно для изменения данных json/xml в middleware или DispatcherFilters перед передачей в RequestHandlerComponent.
Параметры
- string
$input - Строка, которая заменит исходные разобранные данные из input()
subdomainssource public
subdomains( integer $tldLength 1 )
Получить домены верхнего уровня для хоста.
Параметры
- integer
$tldLengthнеобязательно 1 - Количество сегментов, которые содержит ваше расширение домена. Например:
example.comсодержит 1 домен. В то время как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/3.1/class-Cake.Network.Request.html