Spec-Zone.ru › CakePHP 3.4

Класс 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

    Добавляет новый сопоставленный тип ввода. Сопоставленные типы ввода автоматически преобразуются компонентом RequestHandlerComponent во время обратного вызова 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, если строка 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\Http\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()

_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.

Параметры

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, если 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.

Параметры

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, если этот тип предпочтительнее. Если предоставлен массив типов, возвращается первый предпочтительный тип. Если тип не указан, возвращается первый предпочтительный тип.


END_OF_DOCUMENT_MARKER

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

Возвращает

смешанный

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


respondAs()source public

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

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

Параметры

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

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

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

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

Возвращает

логическое

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


responseType()source public

responseType( )

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

Возвращает

смешанный

Псевдоним типа содержимого, или тип содержимого в сыром виде, если карта псевдонимов отсутствует, в противном случае 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', ...) вместо этого.

Параметры

массив|строка|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

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() вместо этого.

Параметры

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

Возвращает

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

Исключения

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

Параметры

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

Возвращает


$this
END_OF_DOCUMENT_MARKER

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–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.4/class-Cake.Controller.Component.RequestHandlerComponent.html

Spec-Zone.ru

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