Spec-Zone.ru › CakePHP 3.6

Класс 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/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
    Возвращает 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 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 deprecated

addInputType( string $type , array $handler )

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

Устарело

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

Параметры

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

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

Исключения

Cake\Core\Exception\Exception

beforeRedirect()source public deprecated

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.

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

логическое
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 deprecated

initialize( array $config )

Устарело

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

Параметры

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

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

Cake\Controller\Component::initialize()

isAtom()source public

isAtom( )

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

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

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

isMobile()source public

isMobile( )

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

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

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

isRss()source public

isRss( )

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

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

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

isWap()source public

isWap( )

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

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

логическое

isXml()source public

isXml( )

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

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

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

mapAlias()source public

mapAlias( string|array $alias )

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

Параметры

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

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

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

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


prefers()source public

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

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

Параметры

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

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

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

смешанный

Если $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

Если предоставлен один тип, будет возвращено значение boolean. Если тип не указан, возвращается сопоставленное значение 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
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 будут сопоставлены. Определение любых типов приведет к исключению значений по умолчанию.
  • viewClassMap - Сопоставление типов и десериализаторов для тел запросов. Если не определено, json и xml будут сопоставлены. Определение любых типов приведет к исключению значений по умолчанию.
  • enableBeforeRedirect - Установить в false для отключения обратного вызова beforeRedirect. Функциональность beforeRedirect устарела.
[
    'checkHttpCache' => true,
    'viewClassMap' => [],
    'inputTypeMap' => [],
    'enableBeforeRedirect' => true
]

$_renderTypesource

protected string|null

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

$ajaxLayoutsource

public string

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

Устарело

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


$enabledsource

public boolean

Устарело

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

$extsource

public string|null

Содержит расширение файла, полученное из Router.

См. также

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

Spec-Zone.ru

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