Spec-Zone.ru › CakePHP 3.7

Класс RequestHandlerComponent

Объект запроса для обработки альтернативных HTTP-запросов

Альтернативные HTTP-запросы могут поступать от беспроводных устройств, таких как мобильные телефоны, карманные компьютеры и т.п. Эти устройства не используют AJAX-запросы, и этот компонент может определить, как Cake должен реагировать на различные потребности карманного компьютера и настольного компьютера.

Cake\Controller\Component реализует Cake\Event\EventListenerInterface использует Cake\Core\InstanceConfigTrait , Cake\Log\LogTrait
Extended by Cake\Controller\Component\RequestHandlerComponent
Пространство имён: Cake\Controller\Component
Ссылка: https://book.cakephp.org/3.0/ru/controllers/components/request-handling.html
Расположение: Controller/Component/RequestHandlerComponent.php

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

  • $_defaultConfig protected
    array
    Конфигурация по умолчанию
  • $_renderType protected
    string|null
    Шаблон для рендеринга заданного типа контента.
  • $ajaxLayout public
    string
    Устанавливает макет, используемый при рендеринге элемента ajaxLogin компонента AuthComponent.
  • $enabled public
    boolean
  • $ext public
    string|null
    Содержит расширение файла, проанализированное роутером.

Наследованные свойства

  • _componentMap, _registry, components, request, response _config, _configInitialized

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

  • __construct() public
    Конструктор. Парсит принятые типы контента, принятые клиентом, используя HTTP_ACCEPT
  • _setExtension() protected

    Устанавливает расширение на основе заголовков accept. Сравнивает принятые типы и сконфигурированные расширения. Если есть один общий тип, он назначается как тип ext/content для ответа. Будет установлен тип с наибольшим весом. Если тип с наибольшим весом имеет более одного типа, соответствующего расширениям, порядок, в котором указаны расширения, определяет, какой тип будет установлен.

  • accepts() public

    Определяет, какие типы контента принимает клиент. Принятие основано на расширении файла, проанализированном роутером (если оно есть), и на заголовке HTTP_ACCEPT. В отличие от Cake\Http\ServerRequest::accepts(), этот метод полностью работает с сопоставленными типами контента.

  • addInputType() public deprecated

    Добавляет новый сопоставленный тип ввода. Сопоставленные типы ввода автоматически преобразуются RequestHandlerComponent во время обратного вызова startup().

  • beforeRedirect() public deprecated
    Обрабатывает (имитирует) перенаправления для AJAX-запросов с помощью requestAction()
  • beforeRender() public

    Проверяет, можно ли считать ответ отличным в соответствии с заголовками запроса и заголовками кеширования ответа. Если он не был изменён, то процесс рендеринга пропускается. И клиент получит пустой ответ с заголовком "304 Not Modified".

  • convertXml() public

    Вспомогательный метод для парсинга входных данных XML, из-за отсутствия анонимных функций он находится здесь.

  • implementedEvents() public
    Поддерживаемые события этого компонента.
  • initialize() public deprecated
  • isAtom() public deprecated
    Возвращает true, если текущий вызов принимает ответ Atom, в противном случае false
  • isMobile() public deprecated

    Возвращает true, если строка user agent соответствует мобильному веб-браузеру или если клиент принимает WAP-контент.

  • isRss() public deprecated
    Возвращает true, если текущий вызов принимает ответ RSS, в противном случае false
  • isWap() public deprecated
    Возвращает true, если клиент принимает WAP-контент
  • isXml() public deprecated
    Возвращает true, если текущий вызов принимает XML-ответ, в противном случае false
  • mapAlias() public
    Сопоставляет псевдоним типа контента обратно с его MIME-типом(ами)
  • prefers() public

    Определяет, какие типы контента предпочитает клиент. Если параметры не заданы, возвращается единственный тип контента, который клиент, скорее всего, предпочитает. Если $type является массивом, возвращается первый элемент массива, который клиент принимает. Предпочтение определяется в первую очередь расширением файла, проанализированным роутером, если оно указано, и во вторую очередь списком типов контента, предоставленным в HTTP_ACCEPT.

  • renderAs() public

    Устанавливает либо класс представления, если он существует, либо путь к макету и шаблону представления. Названия этих элементов получены из входного параметра $type.

  • requestedWith() public
    Определяет тип контента данных, которые клиент отправил (например, в запросе POST)
  • respondAs() public

    Устанавливает заголовок ответа на основе имени индекса сопоставления типа. Он оборачивает несколько методов, доступных в Cake\Http\Response. Он также позволяет вам использовать псевдонимы типов Content-Type.

  • responseType() public deprecated
    Возвращает текущий тип ответа (заголовок Content-type) или null, если псевдоним не существует
  • startup() public

    Метод startup компонента RequestHandler включает в себя несколько автоматических действий, связанных с обнаружением определённых свойств HTTP-запроса, включая:

  • viewClassMap() public deprecated
    Геттер/сеттер для viewClassMap

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

__construct()source public

__construct( Cake\Controller\ComponentRegistry $registry , array $config = [] )

Конструктор. Парсит принятые типы контента, принятые клиентом, используя HTTP_ACCEPT

Параметры

Cake\Controller\ComponentRegistry $registry
Объект ComponentRegistry.
массив $config необязательно []
Массив конфигурации.

Переопределяет

Cake\Controller\Component::__construct()

_setExtension()source protected

_setExtension( Cake\Http\ServerRequest $request , Cake\Http\Response $response )

Устанавливает расширение на основе заголовков accept. Сравнивает принятые типы и сконфигурированные расширения. Если есть один общий тип, он назначается как тип ext/content для ответа. Будет установлен тип с наибольшим весом. Если тип с наибольшим весом имеет более одного типа, соответствующего расширениям, порядок, в котором указаны расширения, определяет, какой тип будет установлен.

Если html является одним из предпочитаемых типов, тип контента не будет установлен, это сделано для предотвращения проблем с браузерами, которые предпочитают HTML и несколько других типов контента.

Параметры

Cake\Http\ServerRequest $request
Экземпляр запроса.
Cake\Http\Response $response
Экземпляр ответа.
END_OF_DOCUMENT_MARKER

accepts()source public

accepts( string|array|null $type = null )

Определяет, какие типы контента принимает клиент. Принятие основано на расширении файла, проанализированном маршрутизатором (если присутствует), и заголовке HTTP_ACCEPT. В отличие от Cake\Http\ServerRequest::accepts(), этот метод полностью работает с сопоставленными типами контента.

Использование:

$this->RequestHandler->accepts(['xml', 'html', 'json']);

Возвращает true, если клиент принимает любой из предоставленных типов.

$this->RequestHandler->accepts('xml');

Возвращает true, если клиент принимает xml.

Параметры

строка|массив|null $type необязательно null

Может быть null (или без параметра), именем типа строки или массивом типов

Возвращает

смешанный

Если передан null или нет параметров, возвращает массив типов контента, которые принимает клиент. Если передана строка, возвращает true, если клиент ее принимает. Если передан массив, возвращает true, если клиент принимает один или несколько элементов массива.


addInputType()source public устаревший

addInputType( string $type , array $handler )

Добавляет новый сопоставленный тип ввода. Сопоставленные типы ввода автоматически преобразуются компонентом RequestHandler во время обратного вызова startup().

Устаревший

3.1.0 Используйте setConfig('addInputType', ...) вместо этого.

Параметры

строка $type
Псевдоним типа, который преобразуется, например, json
массив $handler

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

Выбрасывает

Cake\Core\Exception\Exception

beforeRedirect()source public устаревший

beforeRedirect( Cake\Event\Event $event , string|array $url , Cake\Http\Response $response )

Обрабатывает (имитирует) перенаправления для AJAX-запросов с помощью requestAction()

Устаревший

3.3.5 Эта функциональность будет удалена в версии 4.0.0. Вы можете сейчас отключить эту функцию, установив параметр конфигурации enableBeforeRedirect в значение false.


Параметры

Cake\Event\Event $event
Событие Controller.beforeRedirect.
строка|массив $url
Строка или массив, содержащий местоположение перенаправления
Cake\Http\Response $response
Объект ответа.

Возвращает

Cake\Http\Response|null
Объект ответа, если перенаправление было перехвачено.

beforeRender()source public

beforeRender( Cake\Event\Event $event )

Проверяет, можно ли считать ответ другим в соответствии с заголовками запроса и заголовками кеширования ответа. Если он не был изменен, то процесс рендеринга пропускается. И клиент получит пустой ответ с заголовком "304 Not Modified".

  • Если включен Router::extensions(), тип макета и шаблона изменяется в зависимости от проанализированного расширения или заголовка Accept. Например, если запрошен controller/action.xml, путь к представлению становится app/View/Controller/xml/action.ctp. Также, если запрошен controller/action с Accept: application/xml в заголовках, путь к представлению станет app/View/Controller/xml/action.ctp. Типы макета и шаблона будут переключаться только на типы MIME, распознанные Cake\Http\Response. Если вам нужно объявить дополнительные типы MIME, вы можете сделать это с помощью Cake\Http\Response::type() в методе beforeFilter() вашего контроллера.
  • Если существует помощник с таким же именем, что и расширение, он добавляется в контроллер.
  • Если расширение относится к типу, который понимает RequestHandler, он установит этот тип Content-type в заголовке ответа.

Параметры

Cake\Event\Event $event
Событие Controller.beforeRender.

Возвращает

boolean
false, если процесс рендеринга должен быть прерван

Выбрасывает

Cake\Http\Exception\NotFoundException
Если вызванное расширение не настроено.

convertXml()source public

convertXml( string $xml )

Вспомогательный метод для анализа входных данных xml, из-за отсутствия анонимных функций он находится здесь.

Параметры

строка $xml
Строка xml.

Возвращает

массив
Данные массива xml

implementedEvents()source public

implementedEvents( )

События, поддерживаемые этим компонентом.

Возвращает

массив

Переопределяет

Cake\Controller\Component::implementedEvents()

initialize()source public устаревший

initialize( array $config )

Устаревший

3.4.0 Не используется. Будет удален в версии 4.0.0

Параметры

массив $config
Данные конфигурации.

Переопределяет

Cake\Controller\Component::initialize()

isAtom()source public устаревший

isAtom( )

Возвращает true, если текущий вызов принимает ответ Atom, в противном случае — false

Устаревший

3.7.0 Используйте RequestHandler::prefers('atom') вместо этого.

Возвращает

boolean
True, если клиент принимает ответ Atom

isMobile()source public устаревший

isMobile( )

Возвращает true, если строка пользовательского агента соответствует мобильному веб-браузеру или если клиент принимает WAP-контент.

Устаревший

3.7.0 Используйте ServerRequest::is('mobile') вместо этого.

Возвращает

boolean
True, если пользовательский агент — мобильный веб-браузер

isRss()source public устаревший

isRss( )

Возвращает true, если текущий вызов принимает RSS-ответ, в противном случае — false

Устаревший

3.7.0 Используйте RequestHandler::prefers('rss') вместо этого.

Возвращает

boolean
True, если клиент принимает RSS-ответ

isWap()source public устаревший

isWap( )

Возвращает true, если клиент принимает WAP-контент

Устаревший

3.7.0 Используйте RequestHandler::prefers('wap') вместо этого.

Возвращает

boolean

isXml()source public устаревший

isXml( )

Возвращает true, если текущий вызов принимает XML-ответ, в противном случае — false

Устаревший

3.7.0 Используйте RequestHandler::prefers('xml') вместо этого.

Возвращает

boolean
True, если клиент принимает XML-ответ

mapAlias()source public

mapAlias( string|array $alias )

Преобразует псевдоним типа контента обратно в его тип MIME

Параметры

строка|массив $alias
Строковый псевдоним, который нужно преобразовать обратно в тип контента. Или массив псевдонимов для преобразования.

Возвращает

строка|null|массив

Null при неопределенном псевдониме. Строковое значение сопоставленного типа псевдонима. Если псевдоним сопоставляется с более чем одним типом контента, будет возвращен первый. Если для $alias передан массив, будет возвращен массив сопоставленных типов.


END_OF_DOCUMENT_MARKER

prefers()source public

prefers( string|array|null $type = null )

Определяет, какие типы контента предпочитает клиент. Если параметры не указаны, возвращается единственный тип контента, который клиент, скорее всего, предпочитает. Если $type является массивом, возвращается первый элемент массива, который клиент принимает. Предпочтение определяется в первую очередь расширением файла, проанализированным маршрутизатором (если указано), и во вторую очередь списком типов контента, предоставленным в HTTP_ACCEPT.

Параметры

строка|массив|null $type необязательно null

Необязательный массив «дружественных» имён типов контента, например, 'html', 'xml', 'js' и т. д.

Возвращает

смешанный тип

Если $type равен null или не указан, возвращается первый тип контента в списке, основанный на предпочтениях. Если указан единственный тип, возвращается логическое значение, указывающее, предпочитается ли этот тип. Если указан массив типов, возвращается первый предпочтительный тип. Если тип не указан, возвращается первый предпочтительный тип.


renderAs()source public

renderAs( Cake\Controller\Controller $controller , string $type , array $options = [] )

Устанавливает класс представления, если он существует, или путь к шаблону и макету представления. Имена этих элементов определяются из входного параметра $type.

Использование:

Отображение ответа как ответа «ajax».

$this->RequestHandler->renderAs($this, 'ajax');

Отображение ответа как XML-файла и принудительное сохранение результата в виде загружаемого файла.

$this->RequestHandler->renderAs($this, 'xml', ['attachment' => 'myfile.xml'];

Параметры

Cake\Controller\Controller $controller
Ссылка на объект контроллера
строка $type
Тип ответа (например: 'ajax')
массив $options необязательно []
Массив опций для использования

См. также

\Cake\Controller\Component\RequestHandlerComponent::respondAs()

requestedWith()source public

requestedWith( string|array|null $type = null )

Определяет тип контента данных, отправленных клиентом (например, в запросе POST).

Параметры

строка|массив|null $type необязательно null
Может быть null (или без параметра), строковым именем типа или массивом типов

Возвращает

смешанный тип

Если указан единственный тип, возвращается логическое значение. Если тип не указан, возвращается сопоставленное значение CONTENT_TYPE. Если указан массив, возвращается первый тип контента запроса.


respondAs()source public

respondAs( string|array $type , array $options = [] )

Устанавливает заголовок ответа на основе имени индекса карты типов. Эта функция оборачивает несколько методов, доступных в Cake\Http\Response. Она также позволяет использовать псевдонимы типов контента.

Параметры

строка|массив $type

Дружественное имя типа, например, 'html' или 'xml', или полный тип контента, например, 'application/x-shockwave'.

массив $options необязательно []

Если $type — это дружественное имя типа, которое ассоциируется с более чем одним типом контента, $index используется для выбора типа контента для использования.

Возвращает

булево

Возвращает false, если дружественное имя типа, указанное в $type, не существует в карте типов или если заголовок Content-type уже был установлен этим методом.


responseType()source public устарело

responseType( )

Возвращает текущий тип ответа (заголовок Content-type) или null, если псевдоним не существует.

Устарело

3.7.0 Используйте $response->mapType($response->getType()) вместо этого.

Возвращает

смешанный тип

Псевдоним типа контента или тип контента в исходном виде, если карта псевдонимов не существует, в противном случае null.


startup()source public

startup( Cake\Event\Event $event )

Метод startup компонента RequestHandler позволяет выполнять несколько автоматических действий, связанных с определением определённых свойств HTTP-запроса, включая:

Если XML-данные отправляются методом POST, данные анализируются в XML-объект, который присваивается свойству $data контроллера, которое затем может быть сохранено в объект модели.

Параметры

Cake\Event\Event $event
Событие startup, которое было запущено.

viewClassMap()source public устарело

viewClassMap( array|string|null $type = null , array|null $viewClass = null )

Геттер/сеттер для viewClassMap

Устарело

3.1.0 Используйте setConfig('viewClassMap', ...) вместо этого.

Параметры

массив|строка|null $type необязательно null
Строка типа или массив в формате ['type' => 'viewClass'] для сопоставления одного или нескольких
массив|null $viewClass необязательно null
Класс представления, который будет использоваться для типа без View добавленного

Возвращает

массив|строка
Возвращает viewClass, когда установлен только строковый $type, в противном случае массив с viewClassMap

Наследованные методы из Cake\Controller\Component

__debugInfo()source public

__debugInfo( )

Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.

Возвращает

массив

__get()source public

__get( string $name )

Магический метод для леничной загрузки $components.

Параметры

строка $name
Имя компонента для получения.

Возвращает

смешанный тип
Объект компонента или null.

getController()source public

getController( )

Получить контроллер, к которому привязан этот компонент.

Возвращает

Cake\Controller\Controller
Связанный контроллер.

Методы, используемые из Cake\Core\InstanceConfigTrait

_configDelete()source protected

_configDelete( string $key )

Удаляет единственный ключ конфигурации.

Параметры

строка $key
Ключ для удаления.

Исключения

Cake\Core\Exception\Exception
при попытке перезаписи существующей конфигурации

_configRead()source protected

_configRead( string|null $key )

Читает ключ конфигурации.

Параметры

строка|null $key
Ключ для чтения.

Возвращает

смешанный тип

_configWrite()source protected

_configWrite( string|array $key , mixed $value , boolean|string $merge = false )

Записывает ключ конфигурации.

Параметры

строка|массив $key
Ключ для записи.
смешанный тип $value
Значение для записи.
булево|строка $merge необязательно false

True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.

Исключения

Cake\Core\Exception\Exception
при попытке перезаписи существующей конфигурации

config()source public deprecated

config( string|array|null $key = null , mixed|null $value = null , boolean $merge = true )

Получение/Установка конфигурации.

Использование

Чтение всей конфигурации:

$this->config();

Чтение определенного значения:

$this->config('key');

Чтение вложенного значения:

$this->config('some.nested.key');

Установка определенного значения:

$this->config('key', $value);

Установка вложенного значения:

$this->config('some.nested.key', $value);

Обновление нескольких параметров конфигурации одновременно:

$this->config(['one' => 'value', 'another' => 'value']);

Устарело

3.4.0 используйте setConfig()/getConfig() вместо этого.

Параметры

string|array|null $key необязательно null
Ключ для получения/установки или массив конфигурации.
mixed|null $value необязательно null
Значение для установки.
boolean $merge необязательно true
Рекурсивно объединять или перезаписывать существующую конфигурацию, по умолчанию true.

Возвращает

mixed
Значение конфигурации, которое считывается, или сам объект при операциях записи.

Выбрасывает

Cake\Core\Exception\Exception
При попытке установить неверный ключ.

configShallow()source public

configShallow( string|array $key , mixed|null $value = null )

Объединяет предоставленную конфигурацию с существующей конфигурацией. В отличие от config(), которая выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение.

Установка определенного значения:

$this->configShallow('key', $value);

Установка вложенного значения:

$this->configShallow('some.nested.key', $value);

Обновление нескольких параметров конфигурации одновременно:

$this->configShallow(['one' => 'value', 'another' => 'value']);

Параметры

string|array $key
Ключ для установки или массив конфигурации.
mixed|null $value необязательно null
Значение для установки.

Возвращает


$this

getConfig()source public

getConfig( string|null $key = null , mixed $default = null )

Возвращает конфигурацию.

Использование

Чтение всей конфигурации:

$this->getConfig();

Чтение определенного значения:

$this->getConfig('key');

Чтение вложенного значения:

$this->getConfig('some.nested.key');

Чтение со значением по умолчанию:

$this->getConfig('some-key', 'default-value');

Параметры

string|null $key необязательно null
Ключ для получения или null для всей конфигурации.
mixed $default необязательно null
Значение, возвращаемое, когда ключ не существует.

Возвращает

mixed
Значение конфигурации, которое считывается.

setConfig()source public

setConfig( string|array $key , mixed|null $value = null , boolean $merge = true )

Устанавливает конфигурацию.

Использование

Установка определенного значения:

$this->setConfig('key', $value);

Установка вложенного значения:

$this->setConfig('some.nested.key', $value);

Обновление нескольких параметров конфигурации одновременно:

$this->setConfig(['one' => 'value', 'another' => 'value']);

Параметры

string|array $key
Ключ для установки или массив конфигурации.
mixed|null $value необязательно null
Значение для установки.
boolean $merge необязательно true
Рекурсивно объединять или перезаписывать существующую конфигурацию, по умолчанию true.

Возвращает


$this

Выбрасывает

Cake\Core\Exception\Exception
При попытке установить неверный ключ.

Методы, используемые из Cake\Log\LogTrait

log()source public

log( mixed $msg , integer|string $level = LogLevel::ERROR , string|array $context = [] )

Удобный метод для записи сообщения в журнал. Для получения дополнительной информации о записи в журналы см. Log::write().

Параметры

mixed $msg
Сообщение журнала.
integer|string $level необязательно LogLevel::ERROR
Уровень ошибки.
string|array $context необязательно []
Дополнительные данные журнала, относящиеся к этому сообщению.

Возвращает

boolean
Успешность записи в журнал.

Подробности свойств

$_defaultConfigsource

protected array

Конфигурация по умолчанию

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

  • checkHttpCache - Нужно ли проверять кэш HTTP.
  • viewClassMap - Сопоставление типа с классами представлений. Если не определено, json, xml и ajax будут сопоставлены. Определение любых типов приведет к игнорированию значений по умолчанию.
  • inputTypeMap - Сопоставление типов с десериализаторами для тел запросов. Если не определено, json и xml будут сопоставлены. Определение любых типов приведет к игнорированию значений по умолчанию.
  • enableBeforeRedirect - Установите в false, чтобы отключить обратный вызов beforeRedirect. Функциональность beforeRedirect устарела.
[
    'checkHttpCache' => true,
    'viewClassMap' => [],
    'inputTypeMap' => [],
    'enableBeforeRedirect' => true
]

$_renderTypesource

protected string|null

Шаблон для использования при рендеринге заданного типа контента.

$ajaxLayoutsource

public string

Установите макет, который будет использоваться при рендеринге элемента ajaxLogin компонента AuthComponent.

Устарело

3.3.11 Эта свойство не поддерживается и будет удалено в версии 4.0.0


$enabledsource

public boolean

Устарело

3.4.0 Не используется. Будет удалено в версии 4.0.0
true

$extsource

public string|null

Содержит расширение файла, разобранное маршрутизатором.

Устарело начиная с версии 3.7.0. Это свойство будет защищено в версии 4.0.0.

См. также

\Cake\Routing\Router::extensions()

© 2005–present 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.7/class-Cake.Controller.Component.RequestHandlerComponent.html

Spec-Zone.ru

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