Spec-Zone.ru › CakePHP 3.6

Класс DispatcherFilter

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

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

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

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

$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.
  }
]);

Если ваше условие when возвращает true, будут вызваны методы before/after.

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

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
Смесь: \Cake\Core\InstanceConfigTrait
Расположение: 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
Когда условия 'when' не являются вызываемыми.

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\Http\Response, он будет обработан в конце цикла события, не вызывая контроллер. Это также приведет к тому, что событие after не будет вызвано в диспетчере.

Если возвращается 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

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

Исключения

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

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

Параметры

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

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
При попытке установить недействительный ключ.

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

$_defaultConfigsource

protected array

Конфигурация по умолчанию

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

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

$_prioritysource

protected integer

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

10

© 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.Routing.DispatcherFilter.html

Spec-Zone.ru

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