Класс 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Массив данных cookie.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Экземпляр Uri.Psr\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()
Параметры
- string
$name - Вызванный метод
- array
$params - Массив параметров для вызова метода
Возвращает
mixedВызывает исключение
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
Параметры
- string|array
$configoptional [] Массив данных запроса для создания запроса. Строковая версия этого аргумента устарела и будет удалена в версии 4.0.0
__get()source public
__get( string $name )
Магический метод get позволяет напрямую получать доступ к разобранным параметрам маршрутизации в объекте.
Позволяет получить доступ к $this->params['controller'] через $this->controller.
Устарело
3.4.0 Доступ к параметрам маршрутизации через __get будет удален в версии 4.0.0. Используйте getParam() вместо этого.
Параметры
- string
$name - Доступное свойство.
Возвращает
mixedЗначение параметра или null.
__isset()source public
__isset( string $name )
Магический метод isset позволяет выполнять проверки isset/empty на параметрах маршрутизации.
Устаревшее
Доступ к параметрам маршрутизации через __isset будет удален в версии 4.0.0. Используйте вместо этого getParam().
Параметры
- string
$name - Доступное свойство.
Возвращает
booleanСуществование
_acceptHeaderDetector()source protected
_acceptHeaderDetector( array $detect )
Определяет, присутствует ли определённый заголовок accept.
Параметры
- array
$detect - Массив параметров детектора.
Возвращает
booleanСоответствует ли запрос проверяемому типу.
_createUploadedFile()source protected
_createUploadedFile( array $value )
Создаёт экземпляр UploadedFile из массива $_FILES.
Если значение представляет собой массив значений, этот метод рекурсивно обработает данные.
Параметры
- array
$value - Структура $_FILES
Возвращает
array|Psr\Http\Message\UploadedFileInterface_environmentDetector()source protected
_environmentDetector( array $detect )
Определяет, присутствует ли определённая переменная окружения.
Параметры
- array
$detect - Массив параметров детектора.
Возвращает
booleanСоответствует ли запрос проверяемому типу.
_headerDetector()source protected
_headerDetector( array $detect )
Определяет, присутствует ли определённый заголовок.
Параметры
- array
$detect - Массив параметров детектора.
Возвращает
booleanСоответствует ли запрос проверяемому типу.
_is()source protected
_is( string|array $type , array $args )
Вспомогательная функция для public is()
Параметры
- string|array
$type Тип запроса, который нужно проверить. Если массив, этот метод вернёт true, если запрос соответствует любому типу.
- array
$args - Массив пользовательских аргументов детектора.
Возвращает
booleanСоответствует ли запрос проверяемому типу.
_normalizeNestedFiles()source protected
_normalizeNestedFiles( array $files [] )
Нормализует массив спецификаций файлов.
Перебирает все вложенные файлы и возвращает нормализованный массив экземпляров UploadedFileInterface.
Параметры
- array
$filesoptional [] - Данные файла для нормализации и преобразования.
Возвращает
arrayМассив объектов UploadedFileInterface.
_paramDetector()source protected
_paramDetector( array $detect )
Определяет, присутствует ли определённый параметр запроса.
Параметры
- array
$detect - Массив параметров детектора.
Возвращает
booleanСоответствует ли запрос проверяемому типу.
_parseAcceptWithQualifier()source protected
_parseAcceptWithQualifier( string $header )
Парсит заголовки Accept* с параметрами квалификатора.
Извлекаются только квалификаторы, все остальные расширения accept игнорируются, так как они редко используются.
Параметры
- string
$header - Заголовок для парсинга.
Возвращает
array_processFiles()source protected
_processFiles( array $post , array $files )
Обрабатывает загруженные файлы и перемещает их в данные POST.
Параметры
- array
$post - Данные POST, к которым будут добавлены файлы.
- array
$files - Загруженные файлы для добавления.
Возвращает
arrayОбъединённые данные POST + файлы.
_processGet()source protected
_processGet( array $query , string $queryString '' )
Обрабатывает параметры GET и перемещает их в объект.
Параметры
- array
$query - Массив, в который добавляются распарсенные ключи/значения.
- string
$queryStringoptional '' - Строка запроса из URL, если предоставлена
Возвращает
arrayМассив, содержащий распарсенную строку запроса в виде ключей/значений.
_processPost()source protected
_processPost( array $data )
Устанавливает переменную окружения REQUEST_METHOD на основе значения симулируемого переопределения _method HTTP. Также сохраняется 'ORIGINAL_REQUEST_METHOD', если вам нужно прочитать несимулированный HTTP-метод, используемый клиентом.
Параметры
- array
$data - Массив данных POST.
Возвращает
array_readInput()source protected
_readInput( )
Считывает данные из php://input, в тестах имитируется.
Возвращает
stringСодержимое php://input
_setConfig()source protected
_setConfig( array $config )
Обрабатывает данные конфигурации/настроек в свойства.
Параметры
- array
$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'); ```
Параметры
- string|null
$languageoptional null - Язык для проверки.
Возвращает
array|booleanЕсли $language указан, возвращает boolean. Иначе массив принятых языков.
accepts()source public
accepts( string|null $type null )
Определяет, какие типы контента принимает клиент, или проверяет, принимает ли он определённый тип контента.
Получение всех типов:
$this->request->accepts();
Проверка одного типа:
$this->request->accepts('application/json'); Этот метод отсортирует возвращаемые типы контента в соответствии с приоритетами, указанными клиентом.
Параметры
- string|null
$typeoptional null - Тип контента для проверки. Оставьте null, чтобы получить все типы, которые принимает клиент.
Возвращает
array|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 Данные для установки (устарело)
Возвращает
смешанный|Cake\Http\ServerRequest$this Либо считываемое значение, либо этот объект, чтобы можно было выполнить последовательные записи.
domain()source public
domain( integer $tldLength 1 )
Получить доменное имя и включить сегменты $tldLength в tld.
Параметры
- целое число
$tldLengthнеобязательно 1 Количество сегментов, содержащихся в вашем tld. Например:
example.comсодержит 1 tld. В то время как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( )
Получение коллекции куки на основе куки запроса
Коллекция Cookie позволяет взаимодействовать с куки запроса с помощью \Cake\Http\Cookie\Cookie объектов и может упростить преобразование куки запроса в куки ответа.
Этот метод будет создавать новую коллекцию куки каждый раз при вызове. Это оптимизация, которая позволяет распределять меньше объектов, пока не понадобится более сложная коллекция Cookie. В общем случае вы должны предпочитать 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 Значение по умолчанию при попытке получения значения переменной окружения, которое не существует.
Возвращает
строка|nullЗначение среды или null, если значение не существует.
getHeader()source public
getHeader( string $name )
Получение одного заголовка из запроса.
Возвращает значение заголовка как массив. Если заголовок отсутствует, возвращается пустой массив.
Параметры
- строка
$name - Заголовок, который требуется получить (регистронезависимый)
Возвращает
arrayАссоциативный массив заголовков и их значений. Если заголовок не существует, возвращается пустой массив.
Ссылка
Этот метод является частью интерфейса PSR-7 серверного запроса.getHeaderLine()source public
getHeaderLine( string $name )
Получение одного заголовка как строки из запроса.
Параметры
- строка
$name - Заголовок, который требуется получить (регистронезависимый)
Возвращает
строкаЗначения заголовка объединены в строку, разделенную запятыми.
Ссылка
Этот метод является частью интерфейса PSR-7 серверного запроса.getHeaders()source public
getHeaders( )
Получение всех заголовков в запросе.
Возвращает ассоциативный массив, где имена заголовков являются ключами, а значения — списком значений заголовков.
Хотя имена заголовков не чувствительны к регистру, getHeaders() будет нормализовать заголовки.
Возвращает
arrayАссоциативный массив заголовков и их значений.
Ссылка
Этот метод является частью интерфейса PSR-7 серверного запроса.getMethod()source public
getMethod( )
Получение HTTP-метода, используемого для этого запроса. Есть несколько способов указать метод.
- Если ваш клиент поддерживает, можно использовать родные HTTP-методы.
- Можно установить заголовок HTTP-X-Method-Override.
- Можно отправить входной параметр с именем
_method
Любой из этих 3 подходов можно использовать для установки HTTP-метода, используемого CakePHP внутри, что повлияет на результат этого метода.
Возвращает
строкаИмя используемого 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-версию протокола в виде строки.
Возвращает
строкаВерсия 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|строка|массивДанные запроса.
См.
ServerRequest::getQueryParams()getQueryParams()source public
getQueryParams( )
Получение всех параметров запроса в соответствии со спецификациями PSR-7. Для чтения определенных значений запроса используйте альтернативный метод getQuery().
Возвращает
arrayСсылка
Этот метод является частью интерфейса PSR-7 серверного запроса.getRequestTarget()source public
getRequestTarget( )
Получение целевого значения запроса.
Получает целевое значение запроса сообщения, как оно было запрошено, или как установлено с withRequestTarget(). По умолчанию возвращает путь относительно приложения без базового каталога и строку запроса, определенную в переменной среды SERVER.
Возвращает
строкаgetServerParams()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 - $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().Параметры
- строка
$name - Имя параметра для получения.
- ...
$args - $args Значение для установки (устаревшее).
Возвращает
mixed|Cake\Http\ServerRequest$this Значение указанного параметра. Возвратит false, если параметр не существует или имеет ложное значение.
parseAccept()source public
parseAccept( )
Парсит заголовок HTTP_ACCEPT и возвращает отсортированный массив с типами контента в качестве ключей и значениями pref.
В целом, вы хотите использовать 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().Параметры
- строка|null
$nameопционально null - Имя переменной строки запроса или null для чтения всех.
Возвращает
строка|массив|nullСчитываемое значение
referer()source public
referer( boolean $local false )
Возвращает referer, который направил этот запрос.
Параметры
- логическое
$localопционально false Попытка вернуть локальный адрес. Локальные адреса не содержат имен хостов.
Возвращает
строкаАдрес, направивший этот запрос.
scheme()source public
scheme( )
Возвращает текущий URL-схему, используемый для запроса.
Например, 'http' или 'https'
Возвращает
строкаСхема, используемая для запроса.
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 в middleware или DispatcherFilters перед передачей в RequestHandlerComponent
Устаревшее
3.4.0 Этот метод будет удален в версии 4.0.0. Используйте вместо него withBody().Параметры
- строка
$input - Строка, которая заменит исходные данные, распарсенные из input()
subdomains()source public
subdomains( integer $tldLength 1 )
Возвращает доменные зоны для хоста.
Параметры
- целое число
$tldLengthопционально 1 Количество сегментов, содержащихся в вашей зоне верхнего уровня. Например:
example.comсодержит 1 доменную зону. В то время какexample.co.ukсодержит 2.
Возвращает
массивМассив доменных зон.
validateUploadedFiles()source protected
validateUploadedFiles( array $uploadedFiles , string $path )
Рекурсивно валидирует данные загруженных файлов.
Параметры
- массив
$uploadedFiles - Новый массив файлов для валидации.
- строка
$path - Путь до сих пор.
Исключения
InvalidArgumentExceptionЕсли какие-либо листовые элементы не являются допустимыми файлами.
withAddedHeader()source public
withAddedHeader( string $name , string|array $value )
Возвращает изменённый запрос с предоставленным заголовком.
Существующие значения заголовков будут сохранены. Указанное значение будет добавлено к существующим значениям.
Параметры
- строка
$name - Имя заголовка.
- строка|массив
$value - Значение заголовка
Возвращает
Cake\Http\ServerRequestСсылка
Этот метод является частью интерфейса PSR-7 для серверных запросов.withAttribute()source public
withAttribute( string $name , mixed $value )
Возвращает экземпляр с указанным атрибутом запроса.
Параметры
- строка
$name - Имя атрибута.
- смешанное
$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 )
Заменяет cookie в запросе cookie, содержащимися в предоставленном CookieCollection.
Параметры
-
Cake\Http\Cookie\CookieCollection$cookies - Коллекция cookie
Возвращает
Cake\Http\ServerRequestwithCookieParams()source public
withCookieParams( array $cookies )
Заменяет cookie и получает новый экземпляр запроса.
Параметры
- массив
$cookies - Новые данные cookie для использования.
Возвращает
Cake\Http\ServerRequestwithData()source public
withData( string $name , mixed $value )
Обновляет запрос с новым элементом данных запроса.
Возвращает обновлённый объект запроса. Этот метод возвращает новый объект запроса и не изменяет запрос на месте.
Параметры
- строка
$name - Путь с точками для вставки $value.
- смешанное
$value - Значение для вставки в данные запроса.
Возвращает
Cake\Http\ServerRequestwithEnv()source public
withEnv( string $key , string $value )
Обновляет запрос с новым элементом данных среды.
Возвращает обновлённый объект запроса. Этот метод возвращает новый объект запроса и не изменяет запрос на месте.
Параметры
- строка
$key - Ключ, который вы хотите записать.
- строка
$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 array
Список свойств, эмулируемых методами атрибутов PSR7.
['session', 'webroot', 'base', 'params']
$heresource
public string
Полный адрес текущего запроса
Устаревшее свойство
3.4.0 Это общедоступное свойство будет удалено в версии 4.0.0. Используйте getUri()->getPath() вместо него.$paramssource
public array
Массив параметров, извлеченных из URL.
Устаревшее свойство
3.4.0 Это общедоступное свойство будет удалено в версии 4.0.0. Используйте getParam() вместо него.[
'plugin' => null,
'controller' => null,
'action' => null,
'_ext' => null,
'pass' => []
] $querysource
public array
Массив аргументов строки запроса.
Устаревшее свойство
3.4.0 Это общедоступное свойство будет удалено в версии 4.0.0. Используйте getQuery() или getQueryParams() вместо него.[]
$sessionsource
protected Cake\Network\Session
Экземпляр объекта сессии, относящийся к данному запросу.
$streamsource
protected Psr\Http\Message\StreamInterface
Поток тела запроса. Содержит php://input, если опция конструктора input не используется.
$trustProxysource
public boolean
Доверять ли заголовкам HTTP_X, установленным большинством балансировщиками нагрузки. Устанавливать в true только если ваше приложение работает за балансировщиками/прокси, которые вы контролируете.
false
$webrootsource
public string
Сегмент пути webroot для запроса.
Устаревшее свойство
3.4.0 Это общедоступное свойство будет удалено в версии 4.0.0. Используйте getAttribute('webroot') вместо него.'/'
© 2005–2018 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.5/class-Cake.Http.ServerRequest.html