Класс EventManager
Менеджер событий отвечает за отслеживание обработчиков событий, передачу правильных данных им и их вызов в правильном порядке, когда срабатывают связанные события. Вы можете создать несколько экземпляров этого объекта для управления локальными событиями или сохранить один экземпляр и передавать его для управления всеми событиями в вашем приложении.
Краткое описание свойств
-
$_eventListprotectedОбъект списка событий.Cake\Event\EventList|null - Глобально доступный экземпляр, используемый для отправки событий, прикреплённых из любого контекста.
-
$_isGlobalprotectedВнутренний флаг для различения общего менеджера от синглтона.boolean -
$_listenersprotectedСписок обработчиков обратных вызовов, связанных сarray -
$_trackEventsprotectedВключает автоматическое добавление событий в объект списка событий, если он присутствует.boolean - Значение очереди приоритетов по умолчанию для новых присоединённых обработчиков.
integer
Краткое описание методов
- __debugInfo() publicСвойства объекта для отладки.
- _attachSubscriber() protected
Вспомогательная функция для присоединения всех реализованных обратных вызовов экземпляра класса Cake\Event\EventListenerInterface к этому менеджеру в качестве отдельных методов.
- _callListener() protectedВызывает обработчик.
- _detachSubscriber() protectedВспомогательная функция для отсоединения всех обработчиков, предоставленных объектом, реализующим EventListenerInterface.
- _extractCallable() protected
Вспомогательная функция для извлечения и возвращения типа обратного вызова PHP из определения вызываемого объекта, полученного из метода
implementedEventsв Cake\Event\EventListenerInterface. - addEventToList() publicДобавляет событие в список, если объект списка событий присутствует.
- attach() publicДобавляет нового обработчика к событию.
- detach() publicУдаляет обработчик из активных обработчиков.
- dispatch() publicОтправляет новое событие всем настроенным обработчикам.
- getEventList() publicВозвращает список событий.
-
Возвращает глобально доступный экземпляр Cake\Event\EventManager, используемый для отправки событий, прикрепленных за пределами области видимости, где создавались другие менеджеры. Обычно для создания систем хуков или межклассовой коммуникации.
- isTrackingEvents() publicВозвращает, отслеживает ли этот менеджер события.
- listeners() publicВозвращает список всех обработчиков для eventKey в порядке их вызова.
- matchingListeners() publicВозвращает обработчики, соответствующие заданному шаблону.
- off() publicУдаляет обработчик из активных обработчиков.
- on() publicДобавляет нового обработчика к событию.
- prioritisedListeners() publicВозвращает обработчики для указанного ключа события, индексированные по приоритету.
- setEventList() publicВключает ведение списка отправленных событий.
- trackEvents() publicВключает/выключает отслеживание событий во время выполнения.
- unsetEventList() publicОтключает ведение списка отправленных событий.
Подробное описание методов
_attachSubscriber()source protected
_attachSubscriber( Cake\Event\EventListenerInterface $subscriber )
Вспомогательная функция для присоединения всех реализованных обратных вызовов экземпляра класса Cake\Event\EventListenerInterface к этому менеджеру в качестве отдельных методов.
Параметры
-
Cake\Event\EventListenerInterface$subscriber - Обработчик событий.
_callListener()source protected
_callListener( callable $listener , Cake\Event\Event $event )
Вызывает обработчик.
Параметры
- callable
$listener - Обработчик для запуска.
-
Cake\Event\Event$event - Экземпляр события.
Возвращает
mixedРезультат функции $listener.
_detachSubscriber()source protected
_detachSubscriber( Cake\Event\EventListenerInterface $subscriber , string|null $eventKey null )
Вспомогательная функция для отсоединения всех обработчиков, предоставленных объектом, реализующим EventListenerInterface.
Параметры
-
Cake\Event\EventListenerInterface$subscriber - обработчик для отсоединения
- string|null
$eventKeyoptional null - необязательный ключ события для отписки обработчика
_extractCallable()source protected
_extractCallable( array $function , Cake\Event\EventListenerInterface $object )
Вспомогательная функция для извлечения и возвращения типа обратного вызова PHP из определения вызываемого объекта, полученного из метода implementedEvents в Cake\Event\EventListenerInterface.
Параметры
- array
$function - массив, взятый из определения обработчика для события
-
Cake\Event\EventListenerInterface$object - объект обработчика
Возвращает
callableaddEventToList()source public
addEventToList( Cake\Event\Event $event )
Добавляет событие в список, если объект списка событий присутствует.
Параметры
-
Cake\Event\Event$event - Событие для добавления в список.
Возвращает
$this
attach()source public
attach( callable|Cake\Event\EventListenerInterface $callable , string|null $eventKey null , array $options [] )
Добавляет нового слушателя к событию.
Устарело
3.0.0 Используйте on() вместо этого.Параметры
- callable|
Cake\Event\EventListenerInterface$callable PHP допустимый тип обратного вызова или экземпляр Cake\Event\EventListenerInterface, который будет вызван при срабатывании события с именем $eventKey. Если передан экземпляр Cake\Event\EventListenerInterface, то метод
implementedEventsбудет вызван на объекте для регистрации объявленных событий индивидуально в качестве методов, которые будут управляться этим классом. Можно определить несколько обработчиков событий для одного имени события.- string|null
$eventKeyнеобязательно null Уникальное идентификаторное имя события, с которым будет связан обратный вызов. Если $callable является экземпляром Cake\Event\EventListenerInterface, этот аргумент будет проигнорирован.
- array
$optionsнеобязательно [] используется для установки
priorityфлага для слушателя. В будущем могут быть добавлены дополнительные параметры. Приоритеты обрабатываются как очереди. Более низкие значения вызываются перед более высокими, а несколько прикреплений, добавленных в одну очередь с одинаковым приоритетом, будут обработаны в порядке вставки.
Исключения
InvalidArgumentExceptionПри отсутствии ключа события или если обратный вызов не является экземпляром Cake\Event\EventListenerInterface.
detach()source public
detach( callable|Cake\Event\EventListenerInterface $callable , string|null $eventKey null )
Удаляет слушателя из активных слушателей.
Устарело
3.0.0 Используйте off() вместо этого.Параметры
- callable|
Cake\Event\EventListenerInterface$callable - любой допустимый PHP тип обратного вызова или экземпляр EventListenerInterface
- string|null
$eventKeyнеобязательно null - Уникальное идентификаторное имя события, с которым был связан обратный вызов
dispatch()source public
dispatch( string|Cake\Event\Event $event )
Отправляет новое событие всем настроенным слушателям
Параметры
- string|
Cake\Event\Event$event - имя ключа события или экземпляр события
Возвращает
Cake\Event\EventВызывает
$eventgetEventList()source public
getEventList( )
Возвращает список событий.
Возвращает
Cake\Event\EventListinstance()source public static
instance( Cake\Event\EventManager|null $manager null )
Возвращает глобально доступный экземпляр Cake\Event\EventManager, который используется для отправки событий, прикрепленных за пределами области видимости других менеджеров. Обычно для создания систем хуков или межклассовой коммуникации
Если вызван с первым параметром, он будет установлен как глобально доступный экземпляр
Параметры
-
Cake\Event\EventManager|null$managerнеобязательно null - Экземпляр менеджера событий.
Возвращает
Cake\Event\EventManagerГлобальный менеджер событий
isTrackingEvents()source public
isTrackingEvents( )
Возвращает, настроен ли этот менеджер на отслеживание событий
Возвращает
booleanlisteners()source public
listeners( string $eventKey )
Возвращает список всех слушателей для eventKey в порядке их вызова
Параметры
- string
$eventKey - Ключ события.
Возвращает
arraymatchingListeners()source public
matchingListeners( string $eventKeyPattern )
Возвращает слушателей, соответствующих указанному шаблону
Параметры
- string
$eventKeyPattern - Шаблон для соответствия.
Возвращает
arrayoff()source public
off( string|Cake\Event\EventListenerInterface $eventKey , callable|null $callable null )
Удаляет слушателя из активных слушателей.
Полностью удалить EventListenerInterface:
$manager->off($listener);
Удалить всех слушателей для заданного события:
$manager->off('My.event'); Удалить конкретного слушателя:
$manager->off('My.event', $callback); Удалить обратный вызов со всех событий:
$manager->off($callback);
Параметры
- string|
Cake\Event\EventListenerInterface$eventKey Уникальное идентификаторное имя события, с которым был связан обратный вызов, или $listener, который вы хотите удалить.
- callable|null
$callableнеобязательно null - Обратный вызов, который вы хотите отсоединить.
Возвращает
$this
on()source public
on( string|Cake\Event\EventListenerInterface|null $eventKey null , array|callable $options [] , callable|null $callable null )
Добавляет нового слушателя к событию.
Многоаргументный интерфейс для добавления слушателей, эмулирующий jQuery.on().
Связывание EventListenerInterface:
$eventManager->on($listener);
Связывание без параметров:
$eventManager->on('Model.beforeSave', $callable); Связывание с параметрами:
$eventManager->on('Model.beforeSave', ['priority' => 90], $callable); Параметры
- string|
Cake\Event\EventListenerInterface|null$eventKeyнеобязательно null Уникальное идентификаторное имя события, с которым будет связан обратный вызов. Если $eventKey является экземпляром Cake\Event\EventListenerInterface, его события будут связаны с помощью методов
implementedEvents.- array|callable
$optionsнеобязательно [] Либо массив параметров, либо обратный вызов, который вы хотите привязать к $eventKey. Если массив параметров, ключ
priorityможно использовать для определения порядка. Приоритеты обрабатываются как очереди. Более низкие значения вызываются перед более высокими, а несколько прикреплений, добавленных в одну очередь с одинаковым приоритетом, будут обработаны в порядке вставки.- callable|null
$callableнеобязательно null - Вызываемая функция, которую вы хотите вызвать.
Возвращает
$this
Исключения
InvalidArgumentExceptionПри отсутствии ключа события или если обратный вызов не является экземпляром Cake\Event\EventListenerInterface.
prioritisedListeners()source public
prioritisedListeners( string $eventKey )
Возвращает слушателей для указанного ключа события, индексированных по приоритету
Параметры
- string
$eventKey - Ключ события.
Возвращает
arraysetEventList()source public
setEventList( Cake\Event\EventList $eventList )
Включает вывод списка обработанных событий.
Параметры
-
Cake\Event\EventList$eventList - Объект списка событий для использования.
Возвращает
$this
trackEvents()source public
trackEvents( boolean $enabled )
Включает/выключает отслеживание событий во время выполнения.
Параметры
- boolean
$enabled - Истина или ложь для включения/выключения.
Возвращает
$this
unsetEventList()source public
unsetEventList( )
Отключает вывод списка обработанных событий.
Возвращает
$this
Подробное описание свойств
$_generalManagersource
protected static Cake\Event\EventManager
Глобально доступный экземпляр, используемый для отправки событий, прикрепленных из любой области видимости
$_isGlobalsource
protected boolean
Внутренний флаг для различения общего менеджера от синглтона
false
$_trackEventssource
protected boolean
Включает автоматическое добавление событий в объект списка событий, если он присутствует.
false
$defaultPrioritysource
public static integer
Значение очереди приоритетов по умолчанию для новых, подключенных обработчиков
10
© 2005–2018 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.5/class-Cake.Event.EventManager.html