Класс ServerRequest
Класс, который помогает обернуть информацию о запросе и особенности отдельного запроса. Предоставляет методы, обычно используемые для интроспекции заголовков запроса и тела запроса.
- Cake\Http\ServerRequest реализует ArrayAccess, Psr\Http\Message\ServerRequestInterface
Краткое описание свойств
-
$_detectorCacheprotectedКэш экземпляра для результатов вызовов is(что-то)array - Встроенные детекторы, используемые с
arrayis(), могут быть изменены с помощьюaddDetector(). -
$_environmentprotectedМассив данных среды.array -
$_inputprotectedСодержимое php://inputstring -
$attributesprotectedХранение дополнительных атрибутов, прикрепленных к запросу.array -
$basepublicБазовый URL-путь.string -
$cookiespublicМассив данных куки.array -
$datapublicarrayМассив данных POST. Будет содержать данные формы, а также загруженные файлы. В запросах PUT/PATCH/DELETE это свойство будет содержать данные, закодированные в формате form-urlencoded.
-
$emulatedAttributesprotectedСписок свойств, эмулируемых методами атрибутов PSR7.array -
$herepublicПолный адрес текущего запросаstring -
$paramspublicМассив параметров, извлечённых из URL.array -
$protocolprotectedИспользуемая версия HTTP-протокола.string|null -
$querypublicМассив аргументов строки запросаarray -
$requestTargetprotectedЦелевое значение запроса (если переопределено).string|null -
$sessionprotectedЭкземпляр объекта Session, относящийся к этому запросуPsr\Http\Message\StreamInterface -
$streamprotectedПоток тела запроса. Содержит php://input, если не используется опция конструктораPsr\Http\Message\StreamInterfaceinput. -
$trustProxypublicbooleanДоверять ли заголовкам HTTP_X, установленным большинством балансировщиками нагрузки. Устанавливать в true только если ваше приложение работает за балансировщиками/прокси, которыми вы управляете.
-
$uploadedFilesprotectedМассив объектов Psr\Http\Message\UploadedFileInterface.array -
$uriprotectedЭкземпляр UriPsr\Http\Message\UriInterface -
$urlpublicСтрока URL, используемая для запроса.string -
$webrootpublicСегмент пути webroot для запроса.string
Краткое описание методов
- __call() publicОбработчик отсутствующего метода, обрабатывает обертывание методов старого стиля типа isAjax()
- __construct() publicСоздать новый объект запроса.
- __get() publicМагический метод get позволяет получить доступ к параметрам маршрутизации, напрямую обращаясь к объекту.
- __isset() public
Магический метод isset позволяет выполнять проверки isset/empty для параметров маршрутизации.
- _acceptHeaderDetector() protectedОпределяет, присутствует ли определённый заголовок Accept.
- _createUploadedFile() protectedСоздаёт экземпляр UploadedFile из массива $_FILES.
- _environmentDetector() protectedОпределяет, присутствует ли определённая переменная среды.
- _headerDetector() protectedОпределяет, присутствует ли определённый заголовок.
- _is() protectedВспомогательная функция для публичной функции is()
- _normalizeNestedFiles() protectedНормализует массив спецификаций файлов.
- _paramDetector() protectedОпределяет, присутствует ли определённый параметр запроса.
- _parseAcceptWithQualifier() protectedРазбирает заголовки Accept* с параметрами квалификатора.
- _processFiles() protectedОбрабатывает загруженные файлы и перемещает их в данные POST.
- _processGet() protectedОбрабатывает параметры GET и перемещает их в объект.
- _processPost() protected
Устанавливает переменную среды REQUEST_METHOD на основе значения имитируемого _method HTTP-переопределения. Переменная 'ORIGINAL_REQUEST_METHOD' также сохраняется, если вам нужно получить исходный HTTP-метод, использованный клиентом.
- _readInput() protectedСчитывает данные из php://input, имитируется в тестах.
- _setConfig() protectedОбрабатывает данные конфигурации/настроек и записывает их в свойства.
- acceptLanguage() publicПолучить языки, принятые клиентом, или проверить, принимается ли определённый язык.
- accepts() public
Определить, какие типы контента принимает клиент, или проверить, принимает ли он определённый тип контента.
-
Добавить новый детектор в список детекторов, которые может использовать запрос. Можно задавать различные форматы и типы детекторов.
- addParams() public
Добавить параметры в набор обработанных параметров запроса. Это перепишет любые существующие параметры. Это изменяет доступные параметры через
$request->getParam(). - addPaths() public
Добавить пути к переменным путей запроса. Это перепишет любые существующие пути. Предоставляет простой способ изменить, например, webroot и base.
- allowMethod() public
Разрешить только определённые HTTP-методы запроса; если метод запроса не соответствует, будет отображено сообщение об ошибке 405, и будет установлен необходимый заголовок ответа «Allow».
- clearDetectorCache() publicОчищает кэш детектора экземпляра, используемый функцией is()
- clientIp() publicПолучить IP-адрес клиента или адрес, который он указал.
- contentType() publicПолучить тип содержимого, используемый в этом запросе.
- cookie() publicСчитывает данные cookie из данных cookie запроса.
- Метод-обёртка для создания нового запроса из PHP superglobals.
- data() public
Предоставляет чтение/запись доступа к
$this->data. Позволяет использовать синтаксис, похожий наCake\Model\Datasource\Sessionдля чтения данных POST. - domain() publicПолучить доменное имя и включить сегменты $tldLength домена верхнего уровня.
- env() public
Получить/установить значение из данных среды запроса. При отсутствии ключа в свойстве $environment использовать env().
- getAttribute() publicПрочитать атрибут из запроса или получить значение по умолчанию
- getAttributes() publicПолучить все атрибуты в запросе.
- getBody() publicПолучить тело сообщения.
- getCookie() publicСчитывает данные cookie из данных cookie запроса.
- getCookieCollection() publicПолучить коллекцию cookie на основе cookie запроса.
- getCookieParams() publicПолучить все данные cookie из запроса.
- getData() public
Предоставляет безопасный доступ к данным запроса. Позволяет использовать пути, совместимые с Hash::get().
- getEnv() public
Получить значение из данных среды запроса. Если ключ не задан в свойстве $environment, использовать env().
- getHeader() publicПолучить отдельный заголовок из запроса.
- getHeaderLine() publicПолучить отдельный заголовок в виде строки из запроса.
- getHeaders() publicПолучить все заголовки в запросе.
- getMethod() public
Получить HTTP-метод, использованный для данного запроса. Существуют несколько способов указать метод.
- getParam() publicБезопасно получить значения из $this->params.
- getParsedBody() publicПолучить обработанные данные тела запроса.
- getProtocolVersion() publicПолучить версию HTTP-протокола в виде строки.
- getQuery() publicПрочитать определённое значение запроса или путь с точками.
- getQueryParams() public
Получить все параметры запроса в соответствии со спецификациями PSR-7. Для чтения конкретных значений параметров запроса используйте метод getQuery().
- getRequestTarget() publicПолучить целевой адрес запроса.
- getServerParams() publicПолучить все параметры окружения сервера.
- getSession() publicВозвращает экземпляр объекта Session для данного запроса.
- getUploadedFile() publicПолучить загруженный файл по пути с точками.
- getUploadedFiles() publicПолучить массив загруженных файлов из запроса.
- getUri() publicПолучить экземпляр URI.
- hasHeader() publicПроверка, установлено ли заголовок в запросе.
- header() publicЧтение HTTP-заголовка из информации запроса.
- here() publicПолучение значения текущего URL запроса. Включает аргументы запроса.
- host() publicПолучение хоста, на котором был обработан запрос.
- input() public
Чтение данных из
php://input. Полезно при взаимодействии с содержимым тела запроса XML или JSON. - is() publicПроверка, является ли запрос определённого типа.
- isAll() publicПроверка соответствия запроса всем заданным типам.
- method() publicПолучение HTTP-метода, используемого для данного запроса.
- normalizeHeaderName() protectedНормализация имени заголовка до версии SERVER.
- offsetExists() publicРеализация isset() для доступа к массивам.
- offsetGet() publicРеализация чтения для доступа к массивам.
- offsetSet() publicРеализация записи для доступа к массивам.
- offsetUnset() publicРеализация unset() для доступа к массивам.
- param() publicБезопасный доступ к значениям в $this->params.
- parseAccept() public
Парсинг HTTP_ACCEPT заголовка и возврат отсортированного массива с типами контента в качестве ключей и значениями в качестве предпочтений.
- port() publicПолучение порта, на котором был обработан запрос.
- query() public
Предоставляет доступ к чтению
$this->query. Позволяет использовать синтаксис, похожий наCakeSession, для чтения данных запроса URL. - referer() publicВозвращает referer, который направил данный запрос.
- scheme() publicПолучение текущего схемы URL, используемого для запроса.
- session() publicВозвращает экземпляр объекта Session для данного запроса.
- setInput() public
Изменение данных, первоначально полученных из
php://input. Полезно для изменения данных json/xml в middleware или DispatcherFilters перед передачей в RequestHandlerComponent. - subdomains() publicПолучение доменных имён поддомена.
- validateUploadedFiles() protectedРекурсивное валидирование данных загруженных файлов.
- withAddedHeader() publicПолучение изменённого запроса с предоставленным заголовком.
- withAttribute() publicВозвращение экземпляра с указанным атрибутом запроса.
- withBody() publicВозвращение экземпляра со специфицированным телом сообщения.
- withCookieCollection() public
Замена куки в запросе на те, которые содержатся в предоставленной CookieCollection.
- withCookieParams() publicЗамена куки и получение нового экземпляра запроса.
- withData() publicОбновление запроса с новым элементом данных запроса.
- withEnv() publicОбновление запроса с новым элементом данных среды.
- withHeader() publicПолучение изменённого запроса с предоставленным заголовком.
- withMethod() publicОбновление метода запроса и получение нового экземпляра.
- withParam() publicОбновление запроса с новым параметром маршрутизации.
- withParsedBody() publicОбновление разобранного тела и получение нового экземпляра.
- withProtocolVersion() publicВозвращение экземпляра со специфицированной версией HTTP-протокола.
- withQueryParams() publicОбновление данных строки запроса и получение нового экземпляра.
- withRequestTarget() publicСоздание нового экземпляра со специфическим целевым элементом запроса.
- withUploadedFiles() publicОбновление запроса, заменяя файлы и создавая новый экземпляр.
- withUri() publicВозвращение экземпляра со специфицированным uri
- withoutAttribute() publicВозвращение экземпляра без указанного атрибута запроса.
- withoutHeader() publicПолучение изменённого запроса без указанного заголовка.
Детали методов
__call()source public
__call( string $name , array $params )
Обработчик отсутствующего метода, обрабатывает обертывание методов старого стиля типа isAjax()
Параметры
- строка
$name - Вызываемый метод
- массив
$params - Массив параметров для вызова метода
Возвращаемое значение
смешанноеИсключения
BadMethodCallExceptionпри вызове недопустимого метода.
__construct()source public
__construct( string|array $config [] )
Создание нового объекта запроса.
Вы можете предоставить данные в виде массива или строки. Если вы используете строку, вы можете предоставить только URL запроса. Использование массива позволит вам предоставить следующие ключи:
-
postданные POST или данные, не являющиеся строкой запроса -
queryДополнительные данные из строки запроса. -
filesДанные загруженных файлов, отформатированные как $_FILES. -
cookiesКуки для этого запроса. -
environmentДанные $_SERVER и $_ENV. - ~~
url~~ URL без базового пути для запроса. Этот вариант устарел и будет удален в версии 4.0.0 -
uriОбъект PSR7 UriInterface. Если null, будет создан. -
baseБазовый URL для запроса. -
webrootДиректория webroot для запроса. -
inputДанные, которые поступают из php://input, это полезно для моделирования запросов с данными put, patch или delete. -
sessionЭкземпляр объекта Session
Параметры
- строка|массив
$configнеобязательно [] Массив данных запроса для создания запроса. Строковая версия этого аргумента устарела и будет удалена в версии 4.0.0
__get()source public
__get( string $name )
Магический метод get позволяет напрямую получить доступ к разобранным параметрам маршрутизации в объекте.
Позволяет получить доступ к $this->params['controller'] через $this->controller
Устарело
3.4.0 Доступ к параметрам маршрутизации через __get будет удален в 4.0.0. Используйте getParam() вместо этого.
Параметры
- строка
$name - Доступная свойство.
Возвращаемое значение
смешанноелибо значение параметра, либо null.
__isset()source public
__isset( string $name )
Магический метод isset позволяет проверять параметры маршрутизации на наличие/пустоту.
Устаревшее
Доступ к параметрам маршрутизации через __isset будет удален в версии 4.0.0. Используйте вместо этого getParam().
Параметры
- строка
$name - Доступное свойство.
Возвращает
booleanСуществование
_acceptHeaderDetector()source protected
_acceptHeaderDetector( array $detect )
Определяет наличие определённого заголовка Accept.
Параметры
- массив
$detect - Массив опций детектора.
Возвращает
booleanСоответствует ли запрос заданному типу.
_createUploadedFile()source protected
_createUploadedFile( array $value )
Создаёт экземпляр UploadedFile из массива $_FILES.
Если значение представляет собой массив значений, этот метод будет рекурсивно обрабатывать данные.
Параметры
- массив
$value - Структура $_FILES
Возвращает
массив|Psr\Http\Message\UploadedFileInterface_environmentDetector()source protected
_environmentDetector( array $detect )
Определяет наличие определённой переменной окружения.
Параметры
- массив
$detect - Массив опций детектора.
Возвращает
booleanСоответствует ли запрос заданному типу.
_headerDetector()source protected
_headerDetector( array $detect )
Определяет наличие определённого заголовка.
Параметры
- массив
$detect - Массив опций детектора.
Возвращает
booleanСоответствует ли запрос заданному типу.
_is()source protected
_is( string|array $type , array $args )
Вспомогательная функция для public is()
Параметры
- строка|массив
$type Тип запроса для проверки. Если массив, метод вернет true, если запрос соответствует любому типу.
- массив
$args - Массив пользовательских аргументов детектора.
Возвращает
booleanСоответствует ли запрос заданному типу.
_normalizeNestedFiles()source protected
_normalizeNestedFiles( array $files [] )
Нормализует массив спецификаций файлов.
Проходит по всем вложенным файлам и возвращает нормализованный массив экземпляров UploadedFileInterface.
Параметры
- массив
$filesнеобязательно [] - Данные файлов для нормализации и преобразования.
Возвращает
массивМассив объектов UploadedFileInterface.
_paramDetector()source protected
_paramDetector( array $detect )
Определяет наличие определённого параметра запроса.
Параметры
- массив
$detect - Массив опций детектора.
Возвращает
booleanСоответствует ли запрос заданному типу.
_parseAcceptWithQualifier()source protected
_parseAcceptWithQualifier( string $header )
Парсит заголовки Accept* с квалификаторами.
Извлекаются только квалификаторы, любые другие расширения accept игнорируются, так как они редко используются.
Параметры
- строка
$header - Заголовок для парсинга.
Возвращает
массив_processFiles()source protected
_processFiles( array $post , array $files )
Обрабатывает загруженные файлы и перемещает их в данные POST.
Параметры
- массив
$post - Данные POST, к которым добавляются файлы.
- массив
$files - Загруженные файлы для добавления.
Возвращает
массивОбъединённые данные POST + файлы.
_processGet()source protected
_processGet( array $query , string $queryString '' )
Обрабатывает параметры GET и добавляет их в объект.
Параметры
- массив
$query - Массив, в который добавляются парсированные ключи/значения.
- строка
$queryStringнеобязательно '' - Строка запроса из URL, если она предоставлена
Возвращает
массивМассив, содержащий парсированную строку запроса в виде пар ключ/значение.
_processPost()source protected
_processPost( array $data )
Устанавливает переменную окружения REQUEST_METHOD на основе значения имитируемого переопределения HTTP _method. Также сохраняется 'ORIGINAL_REQUEST_METHOD', если вам нужен метод HTTP, использованный клиентом без симуляции.
Параметры
- массив
$data - Массив данных POST.
Возвращает
массив_readInput()source protected
_readInput( )
Считывает данные из php://input, имитируется в тестах.
Возвращает
строкаСодержимое php://input
_setConfig()source protected
_setConfig( array $config )
Обрабатывает данные конфигурации/настроек в свойства.
Параметры
- массив
$config - Данные конфигурации для использования.
acceptLanguage()source public
acceptLanguage( string|null $language null )
Возвращает языки, принимаемые клиентом, или проверяет, принимается ли конкретный язык.
Получить список принимаемых языков:
\Cake\Http\ServerRequest::acceptLanguage(); ``` Check if a specific language is accepted:
\Cake\Http\ServerRequest::acceptLanguage('es-es'); ```
Параметры
- строка|null
$languageнеобязательно null - Язык для проверки.
Возвращает
массив|booleanЕсли $language предоставлен, возвращается boolean. В противном случае - массив принимаемых языков.
accepts()source public
accepts( string|null $type null )
Определяет, какие типы контента принимает клиент, или проверяет, принимает ли он определённый тип.
Получить все типы:
$this->request->accepts();
Проверить один тип:
$this->request->accepts('application/json'); Этот метод упорядочит возвращаемые типы контента по значениям приоритета, указанным клиентом.
Параметры
- строка|null
$typeнеобязательно null - Тип контента для проверки. Для получения всех типов, которые принимает клиент, оставьте значение null.
Возвращает
массив|booleanВозвращает массив всех типов, которые принимает клиент, или boolean, если он принимает предоставленный тип.
addDetector()source 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 - Вызываемый объект или массив параметров для определения детектора.
addParams()source public
addParams( array $params )
Добавить параметры к набору проанализированных параметров запроса. Это перепишет все существующие параметры. Это изменяет доступные параметры через $request->getParam().
Параметры
- массив
$params - Массив параметров для объединения.
Возвращает
$this Текущий объект, вы можете использовать цепочку методов.
addPaths()source public
addPaths( array $paths )
Добавить пути к переменным путей запроса. Это перепишет все существующие пути. Предоставляет простой способ изменения, здесь, webroot и base.
Параметры
- массив
$paths - Массив путей для объединения.
Возвращает
$this Текущий объект, вы можете использовать цепочку методов.
allowMethod()source 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\MethodNotAllowedExceptionclearDetectorCache()source public
clearDetectorCache( )
Очищает кэш детектора экземпляра, используемый функцией is()
clientIp()source public
clientIp( )
Получить IP-адрес, который использует клиент или который он указывает.
Возвращает
строкаIP-адрес клиента.
contentType()source public
contentType( )
Получить тип содержимого, используемый в этом запросе.
Возвращает
строкаcookie()source public
cookie( string $key )
Считывать данные cookie из данных cookie запроса.
Устарело
3.4.0 Используйте getCookie() вместо этого.Параметры
- строка
$key - Ключ, который вы хотите считать.
Возвращает
null|строкаЗначение cookie, или null, если значение не существует.
createFromGlobals()source public static
createFromGlobals( )
Метод-обертка для создания нового запроса из суперглобальных переменных PHP.
Использует данные $_GET, $_POST, $_FILES, $_COOKIE, $_SERVER, $_ENV и php://input для построения запроса.
Устарело
3.4.0 ИспользуйтеCake\Http\ServerRequestFactory вместо этого.Возвращает
Cake\Http\ServerRequestdata()source public
data( string|null $name , ... $args )
Предоставляет чтение/запись доступа к $this->data. Позволяет использовать синтаксис, похожий на Cake\Model\Datasource\Session для чтения данных post.
Чтение значений.
$request->data('Post.title'); При чтении значений вы получите null для ключей/значений, которые не существуют.
Запись значений
$request->data('Post.title', 'New post!'); Вы можете записывать любые значения, даже пути/ключи, которые не существуют, и массивы будут созданы для вас.
Устарело
3.4.0 Используйте withData() и getData() или getParsedBody() вместо этого.Параметры
- строка|null
$name - Имя значения с точкой, отделяющей части, для чтения/записи
- ...
$args - $args Данные для установки (устарело)
Возвращает
mixed|Cake\Http\ServerRequest$this Либо читаемое значение, либо этот объект, чтобы вы могли цеплять последовательные записи.
domain()source public
domain( integer $tldLength 1 )
Получить доменное имя и включить сегменты $tldLength доменной зоны.
Параметры
- целое число
$tldLengthнеобязательно 1 Количество сегментов, содержащихся в доменной зоне. Например:
example.comсодержит 1 доменную зону. Аexample.co.ukсодержит 2.
Возвращает
строкаДоменное имя без поддоменов.
env()source public
env( string $key , string|null $value null , string|null $default null )
Получить/установить значение из данных среды запроса. Вернуться к использованию env(), если ключ не установлен в свойстве $environment.
Устарело
3.5.0 Используйте getEnv()/withEnv() вместо этого.Параметры
- строка
$key - Ключ, который вы хотите читать/записывать.
- строка|null
$valueнеобязательно null - Значение для установки. По умолчанию null.
- строка|null
$defaultнеобязательно null Значение по умолчанию при попытке извлечь значение переменной окружения, которое не существует. Параметр value должен быть null.
Возвращает
$this|строка|null Этот экземпляр, если используется в качестве установщика, если используется в качестве получателя, значение переменной окружения или null, если значение не существует.
getAttribute()source public
getAttribute( string $name , mixed|null $default null )
Прочитать атрибут из запроса или получить значение по умолчанию.
Параметры
- строка
$name - Имя атрибута.
- смешанное|null
$defaultнеобязательно null - Значение по умолчанию, если атрибут не задан.
Возвращает
смешанноеgetAttributes()source public
getAttributes( )
Получить все атрибуты в запросе.
Включает атрибуты params, webroot и base, предоставленные CakePHP.
Возвращает
массивgetBody()source public
getBody( )
Получить тело сообщения.
Возвращает
Psr\Http\Message\StreamInterfaceВозвращает тело в виде потока.
getCookie()source public
getCookie( string $key , string $default null )
Считывание данных куки из данных куки запроса.
Параметры
- строка
$key - Ключ или путь с точками, который вы хотите прочитать.
- строка
$defaultнеобязательно null - Значение по умолчанию, если куки не установлена.
Возвращаемое значение
null|array|stringЛибо значение куки, либо null, если значение не существует.
getCookieCollection()source public
getCookieCollection( )
Получение коллекции куки на основе куки запроса
CookieCollection позволяет взаимодействовать с куки запроса с помощью \Cake\Http\Cookie\Cookie объектов и может упростить преобразование куки запроса в куки ответа.
Этот метод будет создавать новую коллекцию куки каждый раз, когда он вызывается. Это оптимизация, которая позволяет уменьшить количество выделяемых объектов, пока не потребуется более сложная CookieCollection. В общем случае следует отдавать предпочтение getCookie() и getCookieParams() этому методу. Использование CookieCollection идеально подходит, если ваши куки содержат сложные данные, закодированные в JSON.
Возвращаемое значение
Cake\Http\Cookie\CookieCollectiongetCookieParams()source public
getCookieParams( )
Получение всех данных куки из запроса.
Возвращаемое значение
arrayМассив данных куки.
getData()source public
getData( string|null $name null , mixed $default null )
Обеспечивает безопасный доступ к данным запроса. Позволяет использовать пути, совместимые с Hash::get().
Чтение значений.
// get all data
$request->getData();
// Read a specific field.
$request->getData('Post.title');
// With a default value.
$request->getData('Post.not there', 'default value'); При чтении значений вы получите null для ключей/значений, которые не существуют.
Параметры
- строка|null
$nameнеобязательно null - Имя значения с разделителями точек для чтения. Или null для чтения всех данных.
- смешанное
$defaultнеобязательно null - Данные по умолчанию.
Возвращаемое значение
null|string|arrayЧитаемое значение.
getEnv()source public
getEnv( string $key , string|null $default null )
Получение значения из данных среды запроса. Используйте env(), если ключ не установлен в свойстве $environment.
Параметры
- строка
$key - Ключ, который вы хотите прочитать.
- строка|null
$defaultнеобязательно null Значение по умолчанию при попытке извлечь значение переменной среды, которая не существует.
Возвращаемое значение
string|nullЛибо значение среды, либо null, если значение не существует.
getHeader()source public
getHeader( string $name )
Получение одного заголовка из запроса.
Возвращает значение заголовка в виде массива. Если заголовок отсутствует, возвращается пустой массив.
Параметры
- строка
$name - Заголовок, который вы хотите получить (регистронезависимо)
Возвращаемое значение
arrayАссоциативный массив заголовков и их значений. Если заголовок не существует, возвращается пустой массив.
Ссылка
Этот метод является частью интерфейса PSR-7 серверного запроса.getHeaderLine()source public
getHeaderLine( string $name )
Получение одного заголовка в виде строки из запроса.
Параметры
- строка
$name - Заголовок, который вы хотите получить (регистронезависимо)
Возвращаемое значение
stringЗначения заголовков, объединенные в строку, разделенную запятыми.
Ссылка
Этот метод является частью интерфейса PSR-7 серверного запроса.getHeaders()source public
getHeaders( )
Получение всех заголовков в запросе.
Возвращает ассоциативный массив, где имена заголовков являются ключами, а значения — списком значений заголовков.
Хотя имена заголовков нечувствительны к регистру, getHeaders() будет нормализовывать заголовки.
Возвращаемое значение
arrayАссоциативный массив заголовков и их значений.
Ссылка
Этот метод является частью интерфейса PSR-7 серверного запроса.getMethod()source public
getMethod( )
Получение HTTP-метода, используемого для этого запроса. Есть несколько способов указать метод.
- Если ваш клиент поддерживает это, вы можете использовать родные HTTP-методы.
- Вы можете установить заголовок HTTP-X-Method-Override.
- Вы можете отправить ввод с именем
_method
Любой из этих 3 подходов может быть использован для установки HTTP-метода, используемого CakePHP внутри, и повлияет на результат этого метода.
Возвращаемое значение
stringНазвание используемого HTTP-метода.
Ссылка
Этот метод является частью интерфейса PSR-7 серверного запроса.getParam()source public
getParam( string $name , mixed $default false )
Безопасный доступ к значениям в $this->params.
Параметры
- строка
$name - Имя или путь с точками к параметру.
- смешанное
$defaultнеобязательно false - Значение по умолчанию, если $name не задано.
Возвращаемое значение
смешанноеgetParsedBody()source public
getParsedBody( )
Получение данных тела запроса после парсинга.
Если тип содержимого запроса — application/x-www-form-urlencoded или multipart/form-data, и метод запроса — POST, это будут данные POST. Для других типов содержимого это может быть тело запроса после десериализации.
Возвращаемое значение
null|array|objectДесериализованные параметры тела, если таковые имеются. Обычно это массив или объект.
getProtocolVersion()source public
getProtocolVersion( )
Получение версии HTTP-протокола в виде строки.
Возвращаемое значение
stringВерсия HTTP-протокола.
getQuery()source public
getQuery( string|null $name null , mixed $default null )
Чтение определенного значения запроса или пути с точками.
Разработчикам рекомендуется использовать getQueryParams(), когда это возможно, так как оно соответствует PSR-7, а этот метод — нет.
Альтернатива PSR-7
$value = Hash::get($request->getQueryParams(), 'Post.id', null);
Параметры
- строка|null
$nameнеобязательно null - Имя или путь с точками к параметру запроса или null для чтения всех.
- смешанное
$defaultнеобязательно null - Значение по умолчанию, если параметр с именем не задан, и $name не равен null.
Возвращаемое значение
null|string|arrayДанные запроса.
См. также
ServerRequest::getQueryParams()getQueryParams()source public
getQueryParams( )
Получение всех параметров запроса в соответствии со спецификациями PSR-7. Для чтения определенных значений запроса используйте альтернативный метод getQuery().
Возвращаемое значение
arrayСсылка
Этот метод является частью интерфейса PSR-7 серверного запроса.getRequestTarget()source public
getRequestTarget( )
Получение целевого объекта запроса.
Получение целевого объекта запроса (request-target) либо в том виде, в котором он был запрошен, либо в виде установленного с withRequestTarget(). По умолчанию это будет возвращать относительный путь приложения без базового каталога и строку запроса, определенную в среде SERVER.
Возвращаемое значение
stringgetServerParams()source public
getServerParams( )
Получить все параметры среды сервера.
Прочитать все данные «среды» или «сервера», которые использовались для создания этого запроса.
Возвращает
массивСсылка
Этот метод является частью интерфейса запроса сервера PSR-7.getSession()source public
getSession( )
Возвращает экземпляр объекта Session для этого запроса
Возвращает
Cake\Network\SessiongetUploadedFile()source public
getUploadedFile( string $path )
Получить загруженный файл по точечному пути.
Параметры
- строка
$path - Точечный путь к файлу, который вы хотите получить.
Возвращает
null|Psr\Http\Message\UploadedFileInterfacegetUploadedFiles()source public
getUploadedFiles( )
Получить массив загруженных файлов из запроса.
Возвращает
массивgetUri()source public
getUri( )
Получить экземпляр URI.
Возвращает
Psr\Http\Message\UriInterfaceВозвращает экземпляр UriInterface, представляющий URI запроса.
hasHeader()source public
hasHeader( string $name )
Проверить, установлен ли заголовок в запросе.
Параметры
- строка
$name - Заголовок, который вы хотите получить (без учета регистра)
Возвращает
булевоОпределен ли заголовок.
Ссылка
Этот метод является частью интерфейса запроса сервера PSR-7.header()source public
header( string $name )
Прочитать HTTP-заголовок из информации запроса.
Если заголовок не определен в запросе, этот метод обратится к чтению данных из $_SERVER и $_ENV. Это поведение обратного вызова устарело и будет удалено в версии 4.0.0.
Устарело
4.0.0 Автоматический возврат к env() будет удален в 4.0.0, см. getHeader()Параметры
- строка
$name - Имя заголовка, который вы хотите получить.
Возвращает
строка|nullnull, если заголовок не установлен, или значение заголовка.
here()source public
here( boolean $base true )
Получить значение текущего URL-адреса запроса. Будет включать аргументы строки запроса.
Устарело
3.4.0 Этот метод будет удален в версии 4.0.0. Используйте getRequestTarget() вместо него.Параметры
- булево
$baseнеобязательно true - Включить базовый путь, установите в значение false, чтобы обрезать базовый путь.
Возвращает
строкаТекущий URL-адрес запроса, включая аргументы строки запроса.
input()source public
input( string|null $callback , ... $args )
Прочитать данные из php://input. Полезно при взаимодействии с содержимым тела запроса XML или JSON.
Получение ввода с функцией декодирования:
$this->request->input('json_decode'); Получение ввода с помощью функции декодирования и дополнительных параметров:
$this->request->input('Xml::build', ['return' => 'DOMDocument']); Все дополнительные параметры применяются к обратной функции в заданном порядке.
Параметры
- строка|null
$callback Функция декодирования, которая преобразует строковые данные в другое представление. Оставьте пустой, чтобы получить исходные данные ввода. Вы также можете передать дополнительные параметры для функции декодирования с помощью аргументов var, см. выше.
- ...
$args - $args Дополнительные аргументы
Возвращает
строкаДекодированные/обработанные данные запроса.
is()source public
is( string|array $type , ... $args )
Проверить, является ли запрос определенного типа.
Использует встроенные правила распознавания, а также дополнительные правила, определенные с помощью Cake\Http\ServerRequest::addDetector(). Любой детектор можно вызвать как is($type) или is$Type().
Параметры
- строка|массив
$type Тип запроса, который вы хотите проверить. Если массив, этот метод вернет true, если запрос соответствует любому типу.
- ...
$args - $args Список аргументов
Возвращает
булевоСоответствует ли запрос проверяемому типу.
isAll()source public
isAll( array $types )
Проверить, что запрос соответствует всем заданным типам.
Позволяет проверить несколько типов и объединить результаты. См. Request::is() для добавления дополнительных типов и встроенных типов.
Параметры
- массив
$types - Типы для проверки.
Возвращает
булевоУспех.
См. также
\Cake\Http\ServerRequest::is()method()source public
method( )
Получить HTTP-метод, используемый для этого запроса.
Устарело
3.4.0 Этот метод будет удален в версии 4.0.0. Используйте getMethod() вместо него.Возвращает
строкаИмя используемого HTTP-метода.
normalizeHeaderName()source protected
normalizeHeaderName( string $name )
Нормализовать имя заголовка до версии SERVER.
Параметры
- строка
$name - Имя заголовка.
Возвращает
строкаНормализованное имя заголовка.
offsetExists()source public
offsetExists( string $name )
Реализация isset() для доступа к массивам
Устарело
3.4.0 Методы ArrayAccess будут удалены в версии 4.0.0. Используйте getParam() вместо них.Параметры
- строка
$name - Элемент для проверки.
Возвращает
булевоРеализация
ArrayAccess::offsetExists() offsetGet()source public
offsetGet( string $name )
Реализация чтения для доступа к массивам
Устарело
3.4.0 Методы ArrayAccess будут удалены в версии 4.0.0. Используйте getParam(), getData() и getQuery() вместо них.Параметры
- строка
$name - Имя ключа, к которому осуществляется доступ.
Возвращает
смешанноеРеализация
ArrayAccess::offsetGet() offsetSet()source public
offsetSet( string $name , mixed $value )
Реализация записи для доступа к массивам
Устарело
3.4.0 Методы ArrayAccess будут удалены в версии 4.0.0. Используйте withParam() вместо них.Параметры
- строка
$name - Имя ключа, к которому осуществляется запись
- смешанное
$value - Записываемое значение.
Реализация
ArrayAccess::offsetSet() offsetUnset()source public
offsetUnset( string $name )
Реализация unset() для доступа к массивам
Устарело
3.4.0 Методы ArrayAccess будут удалены в версии 4.0.0. Используйте withParam() вместо них.Параметры
- строка
$name - Имя для удаления.
Реализация
ArrayAccess::offsetUnset() param()source public
param( string $name , ... $args )
Безопасно получить значения из $this->params.
Устарело
3.4.0 Используйте getParam() и withParam() вместо этого.Параметры
- string
$name - Имя параметра для получения.
- ...
$args - $args Значение для установки (устарело).
Возвращает
mixed|Cake\Http\ServerRequest$this Значение указанного параметра. Вернёт false, если параметр не существует или имеет ложное значение.
parseAccept()source public
parseAccept( )
Обработать заголовок HTTP_ACCEPT и вернуть отсортированный массив с типами контента в качестве ключей и значениями преференций.
В общем случае вы хотите использовать Cake\Http\ServerRequest::accept() для получения простого списка допустимых типов контента.
Возвращает
arrayМассив prefValue => [content/types]
query()source public
query( string|null $name null )
Обеспечивает доступ для чтения к $this->query. Позволяет использовать синтаксис, аналогичный CakeSession для чтения данных запроса URL.
Устарело
3.4.0 Используйте getQuery() или методы PSR-7 getQueryParams() и withQueryParams() вместо этого.Параметры
- string|null
$nameнеобязательно null - Имя переменной строки запроса или null для чтения всех.
Возвращает
string|array|nullСчитываемое значение
referer()source public
referer( boolean $local false )
Возвращает URL, который направил данный запрос.
Параметры
- boolean
$localнеобязательно false Попытка вернуть локальный адрес. Локальные адреса не содержат доменных имён.
Возвращает
stringАдрес ссылки данного запроса.
scheme()source public
scheme( )
Получить текущую схему URL, используемую для запроса.
Например, 'http' или 'https'
Возвращает
stringСхема, используемая для запроса.
session()source public
session( Cake\Network\Session $session null )
Возвращает экземпляр объекта Session для данного запроса.
Если в качестве первого аргумента передается объект сессии, он будет установлен как сессия для этого запроса
Устарело
3.5.0 Используйте getSession() вместо этого. Часть установщика будет удалена.Параметры
-
Cake\Network\Session$sessionнеобязательно null - объект сессии для использования
Возвращает
Cake\Network\SessionsetInput()source public
setInput( string $input )
Изменить данные, изначально полученные из php://input. Полезно для изменения данных json/xml в миддлваре или DispatcherFilters перед передачей в RequestHandlerComponent
Устарело
3.4.0 Этот метод будет удален в версии 4.0.0. Используйте withBody() вместо этого.Параметры
- string
$input - Строка для замены исходных обработанных данных из input()
subdomains()source public
subdomains( integer $tldLength 1 )
Получить поддомены для хоста.
Параметры
- integer
$tldLengthнеобязательно 1 Количество сегментов, содержащихся в вашем расширении домена. Например:
example.comсодержит 1 расширение домена. В то время какexample.co.ukсодержит 2.
Возвращает
arrayМассив поддоменов.
validateUploadedFiles()source protected
validateUploadedFiles( array $uploadedFiles , string $path )
Рекурсивно валидировать загруженные данные файлов.
Параметры
- array
$uploadedFiles - Новый массив файлов для проверки.
- string
$path - Путь на данный момент.
Вызывает исключение
InvalidArgumentExceptionЕсли какие-либо листовые элементы не являются допустимыми файлами.
withAddedHeader()source public
withAddedHeader( string $name , string|array $value )
Получить измененный запрос с указанным заголовком.
Существующие значения заголовков будут сохранены. Предоставленное значение будет добавлен к существующим значениям.
Параметры
- string
$name - Имя заголовка.
- string|array
$value - Значение заголовка
Возвращает
Cake\Http\ServerRequestСсылка
Этот метод является частью интерфейса PSR-7 серверного запроса.withAttribute()source public
withAttribute( string $name , mixed $value )
Возвратить экземпляр с указанным атрибутом запроса.
Параметры
- string
$name - Имя атрибута.
- mixed
$value - Значение атрибута.
Возвращает
Cake\Http\ServerRequestwithBody()source public
withBody( Psr\Http\Message\StreamInterface $body )
Возвратить экземпляр со указанным телом сообщения.
Параметры
- Psr\Http\Message\StreamInterface
$body - Новое тело запроса
Возвращает
Cake\Http\ServerRequestwithCookieCollection()source public
withCookieCollection( Cake\Http\Cookie\CookieCollection $cookies )
Заменить куки в запросе на те, которые содержатся в предоставленном CookieCollection.
Параметры
-
Cake\Http\Cookie\CookieCollection$cookies - Коллекция куки
Возвращает
Cake\Http\ServerRequestwithCookieParams()source public
withCookieParams( array $cookies )
Заменить куки и получить новый экземпляр запроса.
Параметры
- array
$cookies - Новые данные куки для использования.
Возвращает
Cake\Http\ServerRequestwithData()source public
withData( string $name , mixed $value )
Обновить запрос с новым элементом данных запроса.
Возвращает обновлённый объект запроса. Этот метод возвращает новый объект запроса и не изменяет запрос на месте.
Параметры
- string
$name - Точечный путь для вставки $value.
- mixed
$value - Значение для вставки в данные запроса.
Возвращает
Cake\Http\ServerRequestwithEnv()source public
withEnv( string $key , string $value )
Обновить запрос с новым элементом данных среды.
Возвращает обновлённый объект запроса. Этот метод возвращает новый объект запроса и не изменяет запрос на месте.
Параметры
- string
$key - Ключ, который вы хотите записать.
- string
$value - Значение для установки
Возвращает
Cake\Http\ServerRequestwithHeader()source public
withHeader( string $name , string|array $value )
Получить изменённый запрос с предоставленным заголовком.
Параметры
- string
$name - Имя заголовка.
- string|array
$value - Значение заголовка
Возвращает
Cake\Http\ServerRequestСсылка
Этот метод является частью интерфейса запроса сервера PSR-7.withMethod()source public
withMethod( string $method )
Обновить метод запроса и получить новый экземпляр.
Параметры
- string
$method - HTTP-метод для использования.
Возвращает
Cake\Http\ServerRequestНовый экземпляр с обновлённым методом.
Ссылка
Этот метод является частью интерфейса запроса сервера PSR-7.withParam()source public
withParam( string $name , mixed $value )
Обновить запрос с новым параметром маршрутизации
Возвращает обновлённый объект запроса. Этот метод возвращает новый объект запроса и не изменяет запрос на месте.
Параметры
- string
$name - Путь, разделенный точками, для вставки $value.
- mixed
$value - Значение для вставки в параметры запроса.
Возвращает
Cake\Http\ServerRequestwithParsedBody()source public
withParsedBody( null|array|object $data )
Обновить разобранное тело и получить новый экземпляр.
Параметры
- null|array|object
$data Данные десериализованного тела. Обычно они находятся в массиве или объекте.
Возвращает
Cake\Http\ServerRequestwithProtocolVersion()source public
withProtocolVersion( string $version )
Возвращает экземпляр со указанной версией HTTP-протокола.
Строка версии ДОЛЖНА содержать только номер версии HTTP (например, "1.1", "1.0").
Параметры
- string
$version - Версия HTTP-протокола
Возвращает
Cake\Http\ServerRequestwithQueryParams()source public
withQueryParams( array $query )
Обновить данные строки запроса и получить новый экземпляр.
Параметры
- array
$query - Данные строки запроса для использования
Возвращает
Cake\Http\ServerRequestНовый экземпляр с обновлёнными данными строки запроса.
Ссылка
Этот метод является частью интерфейса запроса сервера PSR-7.withRequestTarget()source public
withRequestTarget( string $target )
Создать новый экземпляр со специфическим целевым запросом.
Вы можете использовать этот метод для перезаписи целевого запроса, который выводится из Uri запроса. Это также позволяет вам изменить форму целевого запроса на абсолютную форму, форму с авторизацией или форму с звёздочкой
Параметры
- string
$target - Целевой запрос.
Возвращает
Cake\Http\ServerRequestСсылка
(для различных форм целевых запросов, разрешенных в сообщениях запросов)withUploadedFiles()source public
withUploadedFiles( array $files )
Обновить запрос, заменив файлы, и создав новый экземпляр.
Параметры
- array
$files - Массив объектов загруженных файлов.
Возвращает
Cake\Http\ServerRequestИсключения
InvalidArgumentExceptionпри наличии недопустимого объекта в $files.
withUri()source public
withUri( Psr\Http\Message\UriInterface $uri , boolean $preserveHost false )
Возвратить экземпляр со указанным uri
Предупреждение Замена Uri не обновит base, webroot, и url атрибуты.
Параметры
- Psr\Http\Message\UriInterface
$uri - Новый uri запроса
- boolean
$preserveHostoptional false - Следует ли сохранить хост?
Возвращает
Cake\Http\ServerRequestwithoutAttribute()source public
withoutAttribute( string $name )
Возвратить экземпляр без указанного атрибута запроса.
Параметры
- string
$name - Имя атрибута.
Возвращает
Cake\Http\ServerRequestИсключения
InvalidArgumentExceptionwithoutHeader()source public
withoutHeader( string $name )
Получить изменённый запрос без предоставленного заголовка.
Параметры
- string
$name - Имя заголовка для удаления.
Возвращает
Cake\Http\ServerRequestСсылка
Этот метод является частью интерфейса запроса сервера PSR-7.Подробности свойств
$_detectorssource
protected static array
Встроенные детекторы, используемые с is() могут быть изменены с помощью addDetector().
Существует несколько способов указать детектор, см. \Cake\Http\ServerRequest::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'],
] $basesource
public string
Путь базового URL.
Устарело
3.4.0 Это общедоступное свойство будет удалено в версии 4.0.0. Используйте getAttribute('base') вместо него.$cookiessource
public array
Массив данных cookie.
Устарело
3.4.0 Это общедоступное свойство будет удалено в версии 4.0.0. Используйте getCookie() вместо него.[]
$datasource
public array
Массив данных POST. Будет содержать данные формы, а также загруженные файлы. В запросах PUT/PATCH/DELETE это свойство будет содержать данные в формате form-urlencoded.
Устарело
3.4.0 Это общедоступное свойство будет удалено в версии 4.0.0. Используйте getData() вместо него.[]
$emulatedAttributessource
protected массив
Список свойств, эмулируемых методами атрибутов PSR7.
['session', 'webroot', 'base', 'params']
$heresource
public строка
Полный адрес текущего запроса
Устарело
3.4.0 Это общедоступное свойство будет удалено в версии 4.0.0. Используйте getUri()->getPath() вместо этого.$paramssource
public массив
Массив параметров, извлеченных из URL.
Устарело
3.4.0 Это общедоступное свойство будет удалено в версии 4.0.0. Используйте getParam() вместо этого.[
'plugin' => null,
'controller' => null,
'action' => null,
'_ext' => null,
'pass' => []
] $querysource
public массив
Массив аргументов строки запроса
Устарело
3.4.0 Это общедоступное свойство будет удалено в версии 4.0.0. Используйте getQuery() или getQueryParams() вместо этого.[]
$sessionsource
protected Cake\Network\Session
Экземпляр объекта Session, относящегося к этому запросу
$streamsource
protected Psr\Http\Message\StreamInterface
Поток тела запроса. Содержит php://input, если не используется опция конструктора input.
$trustProxysource
public булево
Доверять ли HTTP-заголовкам HTTP_X, установленным большинством балансировщиками нагрузки. Устанавливать в значение true только если ваше приложение работает за балансировщиками/прокси, которыми вы управляете.
false
$webrootsource
public строка
Сегмент пути webroot для запроса.
Устарело
3.4.0 Это общедоступное свойство будет удалено в версии 4.0.0. Используйте getAttribute('webroot') вместо этого.'/'
© 2005–2017 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.
https://api.cakephp.org/3.4/class-Cake.Http.ServerRequest.html