Просмотров: 28598 (Статистика ведётся с 06.02.2017)
Дата последнего изменения: 11.01.2018
Дата последнего изменения: 11.01.2018
В ядре D7 несколько изменена система событий. Снижены требования к данным, которые должен иметь код, порождающий событие. Пример отправки события:
$event = new Bitrix\Main\Event("main", "OnPageStart"); $event->send();
При необходимости есть возможность на стороне, отправляющей событие, получить результат обработки события принимающими сторонами.
foreach ($event->getResults() as $eventResult) { switch($eventResult->getType()) { case \Bitrix\Main\EventResult::ERROR: // обработка ошибки break; case \Bitrix\Main\EventResult::SUCCESS: // успешно $handlerRes = $eventResult->getParameters(); // получаем то, что вернул нам обработчик события break; case \Bitrix\Main\EventResult::UNDEFINED: /* обработчик вернул неизвестно что вместо объекта класса \Bitrix\Main\EventResult его результат по прежнему доступен через getParameters */ break; } }
Для уменьшения количества кода могут быть созданы наследники класса Bitrix\Main\Event для специфических типов событий. Например, Bitrix\Main\Entity\Event делает более комфортной отправку событий, связанных с модификацией сущностей.
Список ссылок по теме: