Класс 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 )
Вызывает слушателя.
Прямое обращение к обратному вызову на 30% быстрее, чем использование call_user_func_array. Оптимизированы общие случаи для повышения производительности.
Параметры
- 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 - Событие для добавления в список.
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Если отсутствует ключ события или callable не является экземпляром 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 manager.
Возвращает
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 - Обратный вызов, который вы хотите отключить.
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 - Функция обратного вызова, которую вы хотите вызвать.
Исключения
InvalidArgumentExceptionЕсли отсутствует ключ события или callable не является экземпляром Cake\Event\EventListenerInterface.
prioritisedListeners()source public
prioritisedListeners( string $eventKey )
Возвращает слушателей для указанного ключа события, индексированных по приоритету
Параметры
- string
$eventKey - Ключ события.
Возвращает
arraysetEventList()source public
setEventList( Cake\Event\EventList $eventList )
Включает просмотр отправленных событий.
Параметры
-
Cake\Event\EventList$eventList - Объект списка событий для использования.
trackEvents()source public
trackEvents( boolean $enabled )
Включает/выключает отслеживание событий во время выполнения.
Параметры
- boolean
$enabled - True или false, чтобы включить/выключить его.
Подробное описание свойств
$_generalManagersource
protected static Cake\Event\EventManager
Глобально доступный экземпляр, используемый для отправки событий, прикреплённых из любой области видимости.
null
$_isGlobalsource
protected boolean
Внутренний флаг для различения общего менеджера от синглтона.
false
$_trackEventssource
protected boolean
Включает автоматическое добавление событий в объект списка событий, если он присутствует.
Параметр
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.3/class-Cake.Event.EventManager.html