Spec-Zone.ru › CakePHP 2.7

Класс CakeRequest

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

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

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

CakeRequest реализует ArrayAccess
Пакет: Cake\Network
Авторские права: 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.

_processFilessource protected

_processFiles( )

Обработка $_FILES и перемещение данных в объект.

_processGetsource protected

_processGet( )

Обработка параметров GET и перемещение данных в объект.

_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 в указанном порядке. Каждая из этих переменных сервера имеет базовый путь и удаленные строки запроса.

Возвращает

string
URI Путь запроса CakePHP, к которому осуществляется доступ.
END_OF_DOCUMENT_MARKER

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
Массив параметров для объединения.

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

self
self

addPathssource public

addPaths( array $paths )

Добавить пути к переменным путей запроса. Это перезапишет все существующие пути. Предлагает простой способ изменить webroot и base.

Параметры

массив $paths
Массив путей для объединения.

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

self
self

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-запросов.

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

boolean
true

Исключения

MethodNotAllowedException
MethodNotAllowedException

clientIpsource public

clientIp( boolean $safe true )

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

Параметры

boolean $safe необязательно true
Используйте safe = false, когда вы думаете, что пользователь может манипулировать заголовком HTTP_CLIENT_IP. Установка $safe = false также проверит HTTP_X_FORWARDED_FOR

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

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

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
декодированные/обработанные данные запроса.
END_OF_DOCUMENT_MARKER

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

Возвращает

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()

onlyAllowsource public

onlyAllow( string|array $methods )

Псевдоним CakeRequest::allowMethod() для обратной совместимости.

Устарело

3.0.0 С версии 2.5 используйте CakeRequest::allowMethod().

Параметры

строка|массив $methods
Разрешенные HTTP-методы запроса.

Возвращает

boolean
true

Выбрасывает

MethodNotAllowedException
MethodNotAllowedException

См. также

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

Краткое описание свойств

$_detectorssource

protected массив

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

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

array(
    'get' => array('env' => 'REQUEST_METHOD', 'value' => 'GET'),
    'post' => array('env' => 'REQUEST_METHOD', 'value' => 'POST'),
    'put' => array('env' => 'REQUEST_METHOD', 'value' => 'PUT'),
    'delete' => array('env' => 'REQUEST_METHOD', 'value' => 'DELETE'),
    'head' => array('env' => 'REQUEST_METHOD', 'value' => 'HEAD'),
    'options' => array('env' => 'REQUEST_METHOD', 'value' => 'OPTIONS'),
    'ssl' => array('env' => 'HTTPS', 'value' => 1),
    'ajax' => array('env' => 'HTTP_X_REQUESTED_WITH', 'value' => 'XMLHttpRequest'),
    'flash' => array('env' => 'HTTP_USER_AGENT', 'pattern' => '/^(Shockwave|Adobe) Flash/'),
    'mobile' => array('env' => 'HTTP_USER_AGENT', 'options' => array(
        'Android', 'AvantGo', 'BB10', 'BlackBerry', 'DoCoMo', 'Fennec', 'iPod', 'iPhone', 'iPad',
        'J2ME', 'MIDP', 'NetFront', 'Nokia', 'Opera Mini', 'Opera Mobi', 'PalmOS', 'PalmSource',
        'portalmmm', 'Plucker', 'ReqwirelessWeb', 'SonyEricsson', 'Symbian', 'UP\\.Browser',
        'webOS', 'Windows CE', 'Windows Phone OS', 'Xiino'
    )),
    'requested' => array('param' => 'requested', 'value' => 1),
    'json' => array('accept' => array('application/json'), 'param' => 'ext', 'value' => 'json'),
    'xml' => array('accept' => array('application/xml', 'text/xml'), 'param' => 'ext', 'value' => 'xml'),
)

$_inputsource

protected строка

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

''

$basesource

public строка

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

false

$datasource

public массив

Массив данных POST. Будет содержать данные формы, а также загруженные файлы. Ввод с префиксом «data» будет иметь префикс «data» удалён. Если есть пересечение между вводом с префиксом «data» и вводом без него, значение с префиксом «data» будет иметь приоритет.

array()

$heresource

public строка

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

null

$paramssource

public массив

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

array(
    'plugin' => null,
    'controller' => null,
    'action' => null,
    'named' => array(),
    'pass' => array(),
)

$querysource

public массив

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

array()

$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/2.7/class-CakeRequest.html

Spec-Zone.ru

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