Spec-Zone.ru › CakePHP 3.2

Класс DispatcherFilter

Этот абстрактный класс представляет собой фильтр, применяемый к циклу диспетчера. Он действует как обработчик событий с возможностью изменения запроса или ответа по мере необходимости до обработки его контроллером или после того, как тело ответа уже было сформировано.

Подклассы этого класса используют соглашение об именовании классов с суффиксом Filter.

Ограничение фильтров определенными путями

Используя опцию for, вы можете ограничить пути запросов, к которым применяется фильтр. Для событий до и после будут применены те же условия. Например, если вы хотите применить фильтр только к запросам блога, вы можете сделать так:

$filter = new BlogFilter(['for' => '/blog']);

Когда вышеуказанный фильтр подключен к диспетчеру, он будет запускать свои методы beforeDispatch и afterDispatch только для запросов, начинающихся с /blog.

Для условия также можно использовать регулярное выражение, используя префикс preg:.

$filter = new BlogFilter(['for' => 'preg:#^/blog/\d+$#']);

Ограничение фильтров на основе условий

Помимо простого сопоставления по пути, вы можете использовать замыкание для сопоставления произвольных условий запроса или ответа. Например:

$cookieMonster = new CookieFilter([
  'when' => function ($req, $res) {
    // Custom code goes here.
  }
]);

Если ваше условие «когда» возвращает true, методы «до»/«после» будут вызваны.

При использовании сопоставителей for или when, условия будут проверяться повторно в обратных вызовах «до» и «после», так как условия могут измениться во время цикла диспетчеризации.

Cake\Routing\DispatcherFilter реализует Cake\Event\EventListenerInterface использует Cake\Core\InstanceConfigTrait

Непосредственные подклассы

  • Cake\Routing\Filter\AssetFilter
  • Cake\Routing\Filter\ControllerFactoryFilter
  • Cake\Routing\Filter\LocaleSelectorFilter
  • Cake\Routing\Filter\RoutingFilter
Пространство имен: Cake\Routing
Расположение: Routing/DispatcherFilter.php

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

  • $_defaultConfig protected
    array
    Конфигурация по умолчанию
  • $_priority protected
    integer
    Приоритет по умолчанию для всех методов в этом фильтре

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

  • _config, _configInitialized

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

  • __construct() public
    Конструктор.
  • afterDispatch() public

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

  • beforeDispatch() public

    Метод, вызываемый до создания и вызова контроллера для обработки запроса. Если используется по умолчанию, он вызывается после того, как маршрутизатор проанализировал URL и установил параметры маршрутизации в объект запроса.

  • handle() public
    Метод обработки, применяющий условия и определяющий метод для вызова.
  • implementedEvents() public

    Возвращает список событий, на которые подписывается этот фильтр. Диспетчер уведомляет о двух разных событиях Dispatcher.before и Dispatcher.after. По умолчанию этот класс подписывается на методы preDispatch и postDispatch соответственно.

  • matches() public
    Проверяет, соответствует ли входящий запрос критериям этого фильтра.

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

__construct()source public

__construct( array $config [] )

Конструктор.

Параметры

массив $config необязательно []
Настройки фильтра.

Исключения

InvalidArgumentException
Когда условия 'когда' не вызываемый метод.

afterDispatch()source public

afterDispatch( Cake\Event\Event $event )

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

Если возвращается false, событие будет остановлено, и больше не будут уведомлены слушатели. В качестве альтернативы, вы можете вызвать $event->stopPropagation() для достижения того же результата.

Параметры

Cake\Event\Event $event

объект контейнера, содержащий ключи request и response в свойстве data.

beforeDispatch()source public

beforeDispatch( Cake\Event\Event $event )

Метод, вызываемый до создания и вызова контроллера для обработки запроса. Если используется по умолчанию, он вызывается после того, как маршрутизатор проанализировал URL и установил параметры маршрутизации в объект запроса.

Если возвращается экземпляр объекта Cake\Network\Response, он будет обработан в конце цикла события, не вызывая контроллер в результате. Это также приведет к тому, что событие «после» в диспетчере не будет вызвано.

Если возвращается false, событие будет остановлено, и больше не будут уведомлены слушатели. В качестве альтернативы, вы можете вызвать $event->stopPropagation() для достижения того же результата.

Параметры

Cake\Event\Event $event

объект контейнера, содержащий ключи request, response и additionalParams в свойстве data.

handle()source public

handle( Cake\Event\Event $event )

Метод обработки, применяющий условия и определяющий метод для вызова.

Параметры

Cake\Event\Event $event
Экземпляр события.

Возвращает

mixed

implementedEvents()source public

implementedEvents( )

Возвращает список событий, на которые подписывается этот фильтр. Диспетчер уведомляет о двух разных событиях Dispatcher.before и Dispatcher.after. По умолчанию этот класс подписывается на методы preDispatch и postDispatch соответственно.

Переопределите этот метод по своему усмотрению, чтобы подписаться только на нужные события.

Возвращает

массив

Реализация

Cake\Event\EventListenerInterface::implementedEvents()

matches()source public

matches( Cake\Event\Event $event )

Проверяет, соответствует ли входящий запрос критериям этого фильтра.

Параметры

Cake\Event\Event $event
Событие для сопоставления.

Возвращает

boolean

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

_configDelete()source protected

_configDelete( string $key )

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

Параметры

строка $key
Ключ для удаления.

Исключения

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

_configRead()source protected

_configRead( string|null $key )

Прочитать переменную конфигурации

Параметры

строка|null $key
Ключ для чтения.

Возвращает

mixed

_configWrite()source protected

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

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

Параметры

строка|массив $key
Ключ для записи.
mixed $value
Значение для записи.
boolean|строка $merge необязательно false

True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.

Исключения

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

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

Параметры

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->config('key', $value);

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

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

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

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

Параметры

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

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


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

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

$_defaultConfigsource

protected array

Значения по умолчанию для конфига

Они объединяются с пользовательским конфигом при использовании класса. Опции when и for позволяют определить условия, которые проверяются перед вызовом вашего фильтра.

[
    'when' => null,
    'for' => null,
    'priority' => null,
]

$_prioritysource

protected integer

Приоритет по умолчанию для всех методов в этом фильтре

10

© 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.2/class-Cake.Routing.DispatcherFilter.html

Spec-Zone.ru

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