Spec-Zone.ru › CakePHP 3.3

Класс RequestHandlerComponent

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

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

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

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

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

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

  • _componentMap, _registry, components, request _config, _configInitialized

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

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

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

  • accepts() public

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

  • addInputType() public

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

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

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

  • convertXml() public

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

  • implementedEvents() public
    Поддерживаемые события этого компонента.
  • initialize() public

    Проверяет, был ли запрошен определенный тип контента, и устанавливает RequestHandler::$ext соответственно. Проверяет следующее в указанном порядке: 1. Значение '_ext', проанализированное маршрутизатором. 2. Конкретный AJAX-запрос, указанный наличием заголовка. 3. Заголовок Accept. За исключением AJAX-запроса, указанного вторым способом с использованием заголовка, тип должен быть настроен в Cake\Routing\Router.

  • isAtom() public
    Возвращает true, если текущий вызов принимает ответ Atom, иначе false
  • isMobile() public

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

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

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

  • renderAs() public

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

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

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

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

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

  • viewClassMap() public
    Получатель/установщик для viewClassMap

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

__construct()source public

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

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

Параметры

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

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

Cake\Controller\Component::__construct()
END_OF_DOCUMENT_MARKER

_setExtension()source protected

_setExtension( Cake\Network\Request $request , Cake\Network\Response $response )

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

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

Параметры

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

accepts()source public

accepts( string|array|null $type null )

Определяет, какие типы содержимого принимает клиент. Принятие основано на расширении файла, обработанном маршрутизатором (если оно есть), и на заголовке HTTP_ACCEPT. В отличие от Cake\Network\Request::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 )

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

Устарело

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

Параметры

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

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

Выбрасывает

Cake\Core\Exception\Exception

beforeRedirect()source public

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

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

Устарело

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


Параметры

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

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

Cake\Network\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\Network\Response. Если вам нужно объявить дополнительные типы MIME, вы можете сделать это с помощью Cake\Network\Response::type() в методе beforeFilter() вашего контроллера.
  • Если существует помощник с тем же именем, что и расширение, он добавляется к контроллеру.
  • Если расширение относится к типу, который понимает RequestHandler, он установит этот тип содержимого в заголовке ответа.

Параметры

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

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

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

convertXml()source public

convertXml( string $xml )

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

Параметры

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

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

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

implementedEvents()source public

implementedEvents( )

Поддерживаемые события этого компонента.

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

массив

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

Cake\Controller\Component::implementedEvents()

initialize()source public

initialize( array $config )

Проверяет, запрошен ли конкретный тип содержимого, и устанавливает RequestHandler::$ext соответственно. Проверяет следующее в указанном порядке: 1. Значение «_ext», обработанное маршрутизатором. 2. Конкретный AJAX-запрос, указанный наличием заголовка. 3. Заголовок Accept. За исключением AJAX-запроса, указанного с помощью второго метода выше, тип должен быть настроен в Cake\Routing\Router.

Параметры

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

См. также

\Cake\Routing\Router::extensions()

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

Cake\Controller\Component::initialize()

isAtom()source public

isAtom( )

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

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

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

isMobile()source public

isMobile( )

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

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

boolean
True, если user agent является мобильным веб-браузером

isRss()source public

isRss( )

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

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

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

isWap()source public

isWap( )

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

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

boolean

isXml()source public

isXml( )

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

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

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» и т. д.

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

mixed

Если $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 (или без параметра), строковым именем типа или массивом типов

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

mixed

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


respondAs()source public

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

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

Параметры

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

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

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

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

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

boolean

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


responseType()source public

responseType( )

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

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

mixed

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


startup()source public

startup( Cake\Event\Event $event )

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

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

Параметры

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

viewClassMap()source public

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

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

Устарело

3.1.0 Используйте config('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.

Методы, используемые из 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
Значение для записи.
boolean|строка $merge необязательный false

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

Исключения

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

config()source public

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']);

Параметры

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

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

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

Исключения

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

configShallow()source public

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

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

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

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

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

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

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

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

Параметры

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

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


$this Объект самого себя.

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

log()source public

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

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

Параметры

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

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

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

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

$_defaultConfigsource

protected массив

Значения по умолчанию конфигурации

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

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

$_renderTypesource

protected строка

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

null

$ajaxLayoutsource

public строка

Установите макет для использования при отрисовке элемента ajaxLogin компонента AuthComponent.

Устарело

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


$enabledsource

public boolean

Определяет, будут ли вызываться обратные вызовы для этого компонента

true

$extsource

public строка

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

См. также

\Cake\Routing\Router::extensions()
null

$responsesource

public Cake\Network\Response

Содержит ссылку на Controller::$response

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

Spec-Zone.ru

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