Класс EventManager
Менеджер событий отвечает за отслеживание слушателей событий, передачу правильных данных им и их вызов в правильном порядке, когда срабатывают связанные события. Вы можете создавать несколько экземпляров этого объекта для управления локальными событиями или сохранить один экземпляр и передавать его для управления всеми событиями в вашем приложении.
Краткое описание свойств
-
$_eventListprotectedОбъект списка событий.Cake\Event\EventList|null - Глобальный экземпляр, используемый для обработки событий, подключенных из любого контекста.
-
$_isGlobalprotectedВнутренний флаг для различения общего менеджера от синглтона.boolean -
$_listenersprotectedСписок обработчиков событий, связанных сobject -
$_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 - имя ключа события или экземпляр 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 - Экземпляр Event менеджера.
Возвращает
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 - True или false для включения/выключения.
Возвращает
$this
unsetEventList()source public
unsetEventList( )
Отключает вывод отслеживаемых событий.
Возвращает
$this
Подробное описание свойств
$_generalManagersource
protected static Cake\Event\EventManager
Глобально доступный экземпляр, используемый для отправки событий, прикрепленных из любой области видимости.
$_isGlobalsource
protected boolean
Внутренний флаг для различения общего менеджера от синглтона
false
$_trackEventssource
protected boolean
Включает автоматическое добавление событий в объект списка событий, если он присутствует.
Param
boolfalse
$defaultPrioritysource
public static integer
Значение очереди приоритетов по умолчанию для новых подключенных обработчиков
10
© 2005–2017 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.4/class-Cake.Event.EventManager.html