Класс 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, который используется для отправки событий, привязанных вне области видимости других созданных менеджеров. Обычно для создания систем хуков или межклассовой коммуникации
- 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Когда ключ события отсутствует или обратный вызов не является экземпляром 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Глобальный менеджер событий
listeners()source public
listeners( string $eventKey )
Возвращает список всех слушателей для eventKey в порядке их вызова
Параметры
- string
$eventKey - Ключ события.
Возвращает
массивmatchingListeners()source public
matchingListeners( string $eventKeyPattern )
Возвращает слушателей, соответствующих указанному шаблону
Параметры
- string
$eventKeyPattern - Шаблон для сопоставления.
Возвращает
массивoff()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Когда ключ события отсутствует или обратный вызов не является экземпляром Cake\Event\EventListenerInterface.
prioritisedListeners()source public
prioritisedListeners( string $eventKey )
Возвращает слушателей для указанного ключа события, индексированных по приоритету
Параметры
- string
$eventKey - Ключ события.
Возвращает
массивsetEventList()source public
setEventList( Cake\Event\EventList $eventList )
Включает отображение отправленных событий.
Параметры
-
Cake\Event\EventList$eventList - Объект списка событий для использования.
trackEvents()source public
trackEvents( boolean $enabled )
Включает/выключает отслеживание событий во время выполнения.
Параметры
- boolean
$enabled - Истина или ложь для включения/выключения.
Подробное описание свойств
$_generalManagersource
protected static Cake\Event\EventManager
Глобально доступный экземпляр, используемый для отправки событий, прикрепленных из любого контекста.
null
$_isGlobalsource
protected boolean
Внутренний флаг для различения общего менеджера и синглетона
false
$_trackEventssource
protected boolean
Включает автоматическое добавление событий в объект списка событий, если он присутствует.
Параметр
boolfalse
$defaultPrioritysource
public static 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.Event.EventManager.html