Класс EventManager
Менеджер событий отвечает за отслеживание слушателей событий, передачу правильных данных им и их вызов в правильном порядке, когда срабатывают связанные события. Можно создать несколько экземпляров этого объекта для управления локальными событиями или сохранить один экземпляр и передавать его для управления всеми событиями в приложении.
Подробное описание методов
_attachSubscribersource protected
_attachSubscriber( Cake\Event\EventListenerInterface $subscriber )
Вспомогательная функция для подключения всех реализованных обратных вызовов класса Cake\Event\EventListenerInterface как отдельных методов в этом менеджере.
Параметры
-
Cake\Event\EventListenerInterface$subscriber - Слушатель событий.
_callListenersource protected
_callListener( callable $listener , Cake\Event\Event $event )
Вызывает слушателя.
Прямой вызов обратного вызова на 30% быстрее, чем использование call_user_func_array. Оптимизированы общие случаи для повышения производительности.
Параметры
- вызываемый объект
$listener - Слушатель для срабатывания.
-
Cake\Event\Event$event - Экземпляр события.
Возвращает
mixedРезультат функции $listener.
_detachSubscribersource protected
_detachSubscriber( Cake\Event\EventListenerInterface $subscriber , string|null $eventKey null )
Вспомогательная функция для отключения всех слушателей, предоставляемых объектом, реализующим EventListenerInterface
Параметры
-
Cake\Event\EventListenerInterface$subscriber - подписчик, который нужно отключить
- строка|null
$eventKeyнеобязательно null - необязательное имя ключа события для отключения слушателя от него
_extractCallablesource protected
_extractCallable( array $function , Cake\Event\EventListenerInterface $object )
Вспомогательная функция для извлечения и возвращения типа обратного вызова PHP из определения вызываемого объекта из значения возвращаемого методом implementedEvents класса Cake\Event\EventListenerInterface
Параметры
- массив
$function - массив, взятый из определения обработчика события
-
Cake\Event\EventListenerInterface$object - Объект обработчика
Возвращает
callableобратный вызов
attachsource public
attach( callable|Cake\Event\EventListenerInterface $callable , string $eventKey null , array $options [] )
Добавляет нового слушателя к событию.
Устарело
3.0.0 Используйте on() вместо этого.Параметры
- обратный_вызов|
Cake\Event\EventListenerInterface$callable - Действительный тип обратного вызова PHP или экземпляр Cake\Event\EventListenerInterface, который будет вызван, когда будет сгенерировано событие с именем $eventKey. Если передан экземпляр Cake\Event\EventListenerInterface, то метод
implementedEventsбудет вызван на объекте для регистрации объявленных событий индивидуально как методы, которые будут управляться этим классом. Возможна настройка нескольких обработчиков событий для одного имени события. - строка
$eventKeyнеобязательно null - Уникальное идентификаторное имя события, с которым будет связан обратный вызов. Если $callable является экземпляром Cake\Event\EventListenerInterface, этот аргумент будет проигнорирован.
- массив
$optionsнеобязательно [] - используется для установки флага
priorityдля слушателя. В будущем могут быть добавлены другие параметры. Приоритеты обрабатываются как очереди. Меньшие значения вызываются раньше, а несколько прикреплений, добавленных в одну очередь с одинаковым приоритетом, будут обработаны в порядке вставки.
Выбрасывает
InvalidArgumentExceptionКогда отсутствует ключ события или обратный вызов не является экземпляром Cake\Event\EventListenerInterface.
detachsource public
detach( callable|Cake\Event\EventListenerInterface $callable , string|null $eventKey null )
Удаляет слушателя из активных слушателей.
Устарело
3.0.0 Используйте off() вместо этого.Параметры
- обратный_вызов|
Cake\Event\EventListenerInterface$callable - любой допустимый обратный вызов PHP или экземпляр EventListenerInterface
- строка|null
$eventKeyнеобязательно null - Уникальное идентификаторное имя события, с которым связан обратный вызов
dispatchsource public
dispatch( string|Cake\Event\Event $event )
Отправляет новое событие всем настроенным слушателям
Параметры
- строка|
Cake\Event\Event$event - имя ключа события или экземпляр Event
Возвращает
Cake\Event\Event\Cake\Event\Event
Вызывает
$eventinstancesource public static
instance( Cake\Event\EventManager $manager null )
Возвращает глобально доступный экземпляр Cake\Event\EventManager, используемый для отправки событий, прикрепленных за пределами области видимости других менеджеров. Обычно используется для создания систем хуков или межклассовой связи
Если вызвана с первым параметром, она будет установлена как глобально доступный экземпляр
Параметры
-
Cake\Event\EventManager$managerнеобязательно null - Экземпляр менеджера событий.
Возвращает
Cake\Event\EventManagerглобальный менеджер событий
listenerssource public
listeners( string $eventKey )
Возвращает список всех слушателей для eventKey в порядке их вызова
Параметры
- строка
$eventKey - Ключ события.
Возвращает
arrayмассив
offsource public
off( string|Cake\Event\EventListenerInterface $eventKey , callable $callable null )
Удаляет слушателя из активных слушателей.
Полностью удалите EventListenerInterface:
$manager->off($listener);
Удалите все слушатели для заданного события:
$manager->off('My.event');
Удалите определенного слушателя:
$manager->off('My.event', $callback);
Удалите обратный вызов со всех событий:
$manager->off($callback);
Параметры
- строка|
Cake\Event\EventListenerInterface$eventKey - Уникальное идентификаторное имя события, с которым связан обратный вызов, или $listener, который требуется удалить.
- обратный_вызов
$callableнеобязательно null - Обратный вызов, который требуется отключить.
onsource public
on( string|Cake\Event\EventListenerInterface $eventKey null , array|callable $options [] , callable $callable null )
Добавляет нового слушателя к событию.
Интерфейс с переменным количеством аргументов для добавления слушателей, имитирующий jQuery.on().
Привязка EventListenerInterface:
$eventManager->on($listener);
Привязка без опций:
$eventManager->on('Model.beforeSave', $callable);
Привязка с опциями:
$eventManager->on('Model.beforeSave', ['priority' => 90], $callable);
Параметры
- строка|
Cake\Event\EventListenerInterface$eventKeyнеобязательно null - Уникальное идентификаторное имя события, с которым будет связан обратный вызов. Если $eventKey является экземпляром Cake\Event\EventListenerInterface, его события будут привязаны с помощью методов
implementedEvents. - массив|обратный_вызов
$optionsнеобязательно [] - Либо массив опций, либо обратный вызов, который нужно привязать к $eventKey. Если массив опций, ключ
priorityможет быть использован для определения порядка. Приоритеты обрабатываются как очереди. Меньшие значения вызываются раньше, а несколько прикреплений, добавленных в одну очередь с одинаковым приоритетом, будут обработаны в порядке вставки. - обратный_вызов
$callableнеобязательно null - Функция обратного вызова, которую нужно вызвать.
Выбрасывает
InvalidArgumentExceptionКогда отсутствует ключ события или обратный вызов не является экземпляром Cake\Event\EventListenerInterface.
prioritisedListenerssource public
prioritisedListeners( string $eventKey )
Возвращает слушателей для указанного ключа события, индексированных по приоритету
Параметры
- string
$eventKey - Ключ события.
Возвращает
arrayмассив
Краткое описание свойств
© 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.1/class-Cake.Event.EventManager.html