Spec-Zone.ru › CakePHP 3.1

Класс 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
Ссылка: http://book.cakephp.org/3.0/ru/controllers/components/request-handling.html
Расположение Controller/Component/RequestHandlerComponent.php

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

__constructsource public

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

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

Параметры

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

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

Cake\Controller\Component::__construct()

_setExtensionsource protected

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

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

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

Параметры

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

acceptssource public

accepts( string|array $type null )

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

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

$this->RequestHandler->accepts(['xml', 'html', 'json']);

Возвращает true, если клиент принимает любой из указанных типов.

$this->RequestHandler->accepts('xml');

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

Параметры

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

Возвращает

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

addInputTypesource public

addInputType( string $type , array $handler )

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

Устарело

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

Параметры

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

Выбрасывает

Cake\Core\Exception\Exception
\Cake\Core\Exception\Exception

beforeRedirectsource public

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

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

Параметры

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

Возвращает

Cake\Network\Response|null
Объект ответа, если перенаправление было перехвачено.

beforeRendersource public

beforeRender( Cake\Event\Event $event )

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

  • Если Router::extensions() включён, тип макета и шаблона изменяются на основе проанализированного расширения или заголовка Accept-Type. Например, если запрашивается controller/action.xml, путь к представлению становится app/View/Controller/xml/action.ctp. Также, если запрашивается controller/action с Accept-Type: application/xml в заголовках, путь к представлению станет app/View/Controller/xml/action.ctp. Типы макетов и шаблонов будут переключаться только на типы MIME, распознаваемые Cake\Network\Response. Если вам нужно объявить дополнительные типы MIME, вы можете сделать это, используя Cake\Network\Response::type() в методе beforeFilter() вашего контроллера.
  • Если существует помощник с тем же именем, что и расширение, он добавляется в контроллер.
  • Если расширение относится к типу, который понимает RequestHandler, он установит этот тип Content-type в заголовке ответа.

Параметры

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

Возвращает

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

convertXmlsource public

convertXml( string $xml )

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

Параметры

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

Возвращает

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

implementedEventssource public

implementedEvents( )

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

Возвращает

array
массив

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

Cake\Controller\Component::implementedEvents()

initializesource public

initialize( array $config )

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

Параметры

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

См. также

Router::extensions()

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

Cake\Controller\Component::initialize()

isAtomsource public

isAtom( )

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

Возвращает

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

isMobilesource public

isMobile( )

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

Возвращает

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

isRsssource public

isRss( )

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

Возвращает

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

isWapsource public

isWap( )

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

Возвращает

boolean
bool

isXmlsource public

isXml( )

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

Возвращает

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

mapAliassource public

mapAlias( string|array $alias )

Преобразует псевдоним типа контента в соответствующий MIME-тип(ы)

Параметры

string|array $alias
Псевдоним типа контента для преобразования в MIME-тип. Или массив псевдонимов для преобразования.

Возвращает

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

preferssource public

prefers( string|array $type null )

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

Параметры

string|array $type optional null
Необязательный массив «дружественных» имён типов контента, например, 'html', 'xml', 'js' и т. д.

Возвращает

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

renderAssource 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 optional []
Массив опций

См. также

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

requestedWithsource public

requestedWith( string|array $type null )

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

Параметры

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

Возвращает

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

respondAssource public

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

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

Параметры

string|array $type
Дружественное имя типа, например, 'html' или 'xml', или полный тип контента, например, 'application/x-shockwave'.
array $options optional []
Если $type — дружественное имя типа, которое ассоциируется с несколькими типами контента, $index используется для выбора типа контента.

Возвращает

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

responseTypesource public

responseType( )

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

Возвращает

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

startupsource public

startup( Cake\Event\Event $event )

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

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

Параметры

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

viewClassMapsource public

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

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

Устарело

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

Параметры

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

Возвращает

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

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

__debugInfosource public

__debugInfo( )

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

Возвращает

array
array

__getsource public

__get( string $name )

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

Параметры

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

Возвращает

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

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

_configDeletesource protected

_configDelete( string $key )

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

Параметры

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

Выбрасывает

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

_configReadsource protected

_configRead( string|null $key )

Чтение переменной конфигурации

Параметры

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

Возвращает

mixed
mixed

_configWritesource protected

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

Запись переменной конфигурации

Параметры

string|array $key
Ключ для записи.
mixed $value
Значение для записи.
boolean|string $merge optional false
True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.

Выбрасывает

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

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

Параметры

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

Возвращает

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

Исключения

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

configShallowsource public

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

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

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

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

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

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

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

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

Параметры

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

Возвращает

mixed
$this Сам объект.

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

logsource 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 будут сопоставлены. Определение любых типов исключит значения по умолчанию.
[
    'checkHttpCache' => true,
    'viewClassMap' => [],
    'inputTypeMap' => []
]

$_renderTypesource

protected string

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

null

$enabledsource

public boolean

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

true

$extsource

public string

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

См. также

Router::extensions()
null

$responsesource

public Cake\Network\Response

Ссылается на Controller::$response

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

$_componentMapsource

protected array

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

[]

$_registrysource

protected Cake\Controller\ComponentRegistry

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

$componentssource

public array

Другие компоненты, используемые этим компонентом.

[]

$requestsource

public Cake\Network\Request

Объект запроса

Свойства, используемые из Cake\Core\InstanceConfigTrait

$_configsource

protected array

Конфигурация во время выполнения

[]

$_configInitializedsource

protected boolean

Настройки конфигурации уже были сконфигурированы значениями по умолчанию

false

© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.Controller.Component.RequestHandlerComponent.html

Spec-Zone.ru

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