Spec-Zone.ru › CakePHP 3.5

Класс 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
Ссылка: 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 для ответа. Будет установлен тип с наибольшим весом. Если наибольший вес имеет более одного типа, соответствующего расширениям, порядок, в котором указаны расширения, определяет, какой тип будет установлен.

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

  • accepts() public

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

  • addInputType() public

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

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

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

  • convertXml() public

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

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

    Возвращает true, если строка пользовательского агента соответствует мобильному веб-браузеру или если клиент принимает содержимое 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\Http\Response. Оно также позволяет использовать псевдонимы типов содержимого.

  • 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.
array $config optional []
Массив конфигурации.

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

Cake\Controller\Component::__construct()

_setExtension()source protected

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

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.

Параметры

string|array|null $type необязательно null

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

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

mixed

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


addInputType()source public

addInputType( string $type , array $handler )

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

Устарело

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

Параметры

string $type
Псевдоним типа, который преобразуется, например, json
array $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.
string|array $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, если процесс рендеринга должен быть прерван

convertXml()source public

convertXml( string $xml )

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

Параметры

string $xml
Строка XML.

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

array
Данные массива Xml

implementedEvents()source public

implementedEvents( )

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

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

array

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

Cake\Controller\Component::implementedEvents()

initialize()source public

initialize( array $config )

Устарело

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

Параметры

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

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

Cake\Controller\Component::initialize()

isAtom()source public

isAtom( )

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

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

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

isMobile()source public

isMobile( )

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

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

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

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

Параметры

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

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

string|null|array

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


prefers()source public

prefers( string|array|null $type null )

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

Параметры

string|array|null $type необязательно null

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

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

mixed

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


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
Ссылка на объект контроллера
string $type
Тип ответа (например: 'ajax')
array $options необязательно []
Массив опций для использования

См. также

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

requestedWith()source public

requestedWith( string|array|null $type null )

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

Параметры

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

Возвращает

mixed

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


respondAs()source public

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

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

Параметры

string|array $type

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

array $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 Используйте setConfig('viewClassMap', ...) вместо этого.

Параметры

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

Возвращает

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

Методы, унаследованные от Cake\Controller\Component

__debugInfo()source public

__debugInfo( )

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

Возвращает

array

__get()source public

__get( string $name )

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

Параметры

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

Возвращает

mixed
Объект компонента или null.

getController()source public

getController( )

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

Возвращает

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

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

_configDelete()source protected

_configDelete( string $key )

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

Параметры

string $key
Ключ для удаления.

Исключения

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

_configRead()source protected

_configRead( string|null $key )

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

Параметры

string|null $key
Ключ для чтения.

Возвращает

mixed

_configWrite()source protected

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

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

Параметры

string|array $key
Ключ для записи.
mixed $value
Значение для записи.
boolean|string $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']);

Устарело

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

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

См. также

\Cake\Routing\Router::extensions()

© 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.Controller.Component.RequestHandlerComponent.html

Spec-Zone.ru

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