Spec-Zone.ru › CakePHP 3.8

Класс RequestHandlerComponent

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

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

Cake\Controller\Component реализует Cake\Event\EventListenerInterface использует Cake\Core\InstanceConfigTrait , Cake\Log\LogTrait
Расширенный 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 компонента Auth.
  • $enabled public
    boolean
  • $ext public
    string|null
    Содержит расширение файла, полученное в результате парсинга маршрутизатором

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

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

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

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

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

  • accepts() public

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

  • addInputType() public deprecated

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

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

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

  • convertXml() public

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

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

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

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

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

  • renderAs() public

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

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

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

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

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

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

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

__construct()source public

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

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

Параметры

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

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

Cake\Controller\Component::__construct()

_setExtension()source protected

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

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

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

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

Возвращает

mixed

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


addInputType()source public deprecated

addInputType( string $type , array $handler )

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

Устарело

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

Параметры

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

Выбрасывает

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

convertXml()source public

convertXml( string $xml )

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

Параметры

string $xml
Строка XML.

Возвращает

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

implementedEvents()source public

implementedEvents( )

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

Возвращает

array

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

Cake\Controller\Component::implementedEvents()

initialize()source public deprecated

initialize( array $config )

Устарело

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

Параметры

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

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

Cake\Controller\Component::initialize()

isAtom()source public deprecated

isAtom( )

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

Устарело

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

Возвращает

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

isMobile()source public deprecated

isMobile( )

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

Устарело

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

Возвращает

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

isRss()source public deprecated

isRss( )

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

Устарело

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

Возвращает

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

isWap()source public deprecated

isWap( )

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

Устарело

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

Возвращает

boolean

isXml()source public deprecated

isXml( )

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

Устарело

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

Возвращает

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 optional 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
Ссылка на объект контроллера
строка $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 используется для выбора типа содержимого для использования.

Возвращает

boolean

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


responseType()source public deprecated

responseType( )

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

Устаревшее

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

Возвращает

смешанный

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


startup()source public

startup( Cake\Event\Event $event )

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

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

Параметры

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

viewClassMap()source public deprecated

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

Истина для рекурсивного слияния, «shallow» для простого слияния, ложь для перезаписи, по умолчанию ложь.

Выбрасывает

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

config()source public deprecated

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

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

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

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

$this->config();

Чтение конкретного значения:

$this->config('key');

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

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

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

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

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

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

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

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

Устаревшее

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

Параметры

строка|массив|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->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
Данные конфигурации по указанному ключу или null, если ключ не существует.

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, чтобы отключить callback beforeRedirect. Функциональность beforeRedirect устарела.
[
    'checkHttpCache' => true,
    'viewClassMap' => [],
    'inputTypeMap' => [],
    'enableBeforeRedirect' => true
]

$_renderTypesource

protected string|null

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

$ajaxLayoutsource

public string

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

Устарело

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


$enabledsource

public boolean

Устарело

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

$extsource

public string|null

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

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

См. также

\Cake\Routing\Router::extensions()

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.8/class-Cake.Controller.Component.RequestHandlerComponent.html

Spec-Zone.ru

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