1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/cc_1234-Group-Co

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
eventdispatchershi-jian-diao-du-lei.md 2.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 11:43 b1fd262

Диспетчеризация событий EventDispatcher

Отправка события {#2 пользовательские события}

EventDispatcher::dispatch($eventName, Event $event = null)
use EventDispatcher;

EventDispatcher::dispatch('user.login');

// Вы также можете передать объект события при отправке события
EventDispatcher::dispatch('user.register', new \Event($user));

EventDispatcher::dispatch('user.register', new \UserEvent($user));

Привязка прослушивателей событий

EventDispatcher::addListener($eventName, $listener, $priority = 0)
  • @param eventName
 * @param  listener  может быть методом callback или экземпляром объекта, который наследуется от Listner

 * @param  priority  чем больше значение, тем раньше выполняется
EventDispatcher::removeListener($eventName, $listener)
  • @param eventName
 * @param  listener  может быть методом callback или экземпляром объекта, который наследуется от Listner
EventDispatcher::hasListeners($eventName = null)
EventDispatcher::getListeners($eventName = null)

Пример:

use EventDispatcher;

$listener = new KernalResponseListener();
// Определяем имя события, слушатель, который будет реагировать на событие, и приоритет
EventDispatcher::addListener('kernal.responese', $listener, 10);

EventDispatcher::removeListener('kernal.responese', $listener);

EventDispatcher::hasListeners('kernal.responese');

Привязка класса для прослушивания нескольких событий

EventDispatcher::addSubscriber(EventSubscriberInterface $subscriber)
EventDispatcher::removeSubscriber(EventSubscriberInterface $subscriber)
$subscriber = new TestSubscriber();

EventDispatcher::addSubscriber($subscriber);

EventDispatcher::hasListeners('test.start')
EventDispatcher::hasListeners('test.stop')
EventDispatcher::hasListeners('test.doing')

EventDispatcher::dispatch('test.start');
EventDispatcher::dispatch('test.stop');
EventDispatcher:dispatch('test.doing');

EventDispatcher::removeSubscriber($subscriber);

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/cc_1234-Group-Co.git
git@api.gitlife.ru:oschina-mirror/cc_1234-Group-Co.git
oschina-mirror
cc_1234-Group-Co
cc_1234-Group-Co
master