Spec-Zone.ru › CakePHP 3.1

Класс Request

Класс, помогающий обернуть информацию о запросе и особенности одного запроса. Предоставляет методы, обычно используемые для интроспекции заголовков запроса и тела запроса.

Обладает интерфейсом массива и объекта. Вы можете получить доступ к параметрам фреймворка, используя индексы:

$request['controller'] или $request->controller.

Cake\Network\Request реализует ArrayAccess
Пространство имён: Cake\Network
Расположение: Network/Request.php

Подробное описание метода

__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.
  • url URL без базового пути для запроса.
  • 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
Настройки для установки.

Возвращаемое значение

string
URI Путь запроса 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-запроса.

Возвращаемое значение

boolean
true

Исключения

Cake\Network\Exception\MethodNotAllowedException
\Cake\Network\Exception\MethodNotAllowedException

clearDetectorCachesource public

clearDetectorCache( )

Очищает кэш детектора экземпляра, используемый функцией is()

clientIpsource public

clientIp( )

Получить IP-адрес клиента или IP-адрес, который он указал.

Возвращаемое значение

string
IP-адрес клиента.

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, чтобы вы могли цепочку последовательных записей.
END_OF_DOCUMENT_MARKER

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 запроса, включая аргументы запроса.

hostsource public

host( )

Получить хост, на котором обрабатывался запрос.

Возвращает

string
строка

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
Элемент для проверки.

Возвращает

boolean
bool

Реализация

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 => [типы содержимого]

portsource public

port( )

Получить порт, на котором обрабатывался запрос.

Возвращает

string
строка

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
Массив доменных имен.

Резюме свойств

$_detectorCachesource

protected массив

Кэширование экземпляров результатов вызовов is(что-то)

[]

$_detectorssource

protected static массив

Встроенные детекторы, используемые с is() могут быть изменены с помощью addDetector().

Существует несколько способов указать детектор, см. Cake\Network\Request::addDetector() для различных форматов и способов определения детекторов.

[
    'get' => ['env' => 'REQUEST_METHOD', 'value' => 'GET'],
    'post' => ['env' => 'REQUEST_METHOD', 'value' => 'POST'],
    'put' => ['env' => 'REQUEST_METHOD', 'value' => 'PUT'],
    'patch' => ['env' => 'REQUEST_METHOD', 'value' => 'PATCH'],
    'delete' => ['env' => 'REQUEST_METHOD', 'value' => 'DELETE'],
    'head' => ['env' => 'REQUEST_METHOD', 'value' => 'HEAD'],
    'options' => ['env' => 'REQUEST_METHOD', 'value' => 'OPTIONS'],
    'ssl' => ['env' => 'HTTPS', 'options' => [1, 'on']],
    'ajax' => ['env' => 'HTTP_X_REQUESTED_WITH', 'value' => 'XMLHttpRequest'],
    'flash' => ['env' => 'HTTP_USER_AGENT', 'pattern' => '/^(Shockwave|Adobe) Flash/'],
    'requested' => ['param' => 'requested', 'value' => 1],
    'json' => ['accept' => ['application/json'], 'param' => '_ext', 'value' => 'json'],
    'xml' => ['accept' => ['application/xml', 'text/xml'], 'param' => '_ext', 'value' => 'xml'],
]

$_environmentsource

protected массив

Массив данных среды.

[]

$_inputsource

protected строка

Копия php://input. Поскольку этот поток может быть прочитан только один раз в большинстве SAPI, сохраняется его копия, чтобы пользователям не приходилось об этом знать.

''

$_sessionsource

protected Cake\Network\Session

Экземпляр объекта Session, относящегося к этому запросу.

$basesource

public строка

Базовый путь URL.

$cookiessource

public массив

Массив данных cookie.

[]

$datasource

public массив

Массив данных POST. Будет содержать данные формы, а также загруженные файлы. В запросах PUT/PATCH/DELETE это свойство будет содержать данные, закодированные в формате form-urlencoded.

[]

$heresource

public строка

Полный адрес текущего запроса

$paramssource

public массив

Массив параметров, извлеченных из URL.

[
    'plugin' => null,
    'controller' => null,
    'action' => null,
    '_ext' => null,
    'pass' => []
]

$querysource

public массив

Массив аргументов строки запроса

[]

$trustProxysource

public boolean

Доверять ли HTTP-заголовкам X, установленным большинством балансировщиками нагрузки. Устанавливать в значение true только если ваше приложение работает за балансировщиками нагрузки/прокси, которыми вы управляете.

false

$urlsource

public строка

Строка URL, используемая для запроса.

$webrootsource

public строка

Сегмент пути webroot для запроса.

'/'

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API