29  /  328

События

Просмотров: 4239 (Статистика ведётся с 06.02.2017)
Дата последнего изменения: 08.02.2017

В ядре D7 несколько изменена система событий. Снижены требования к данным, которые должен иметь код, порождающий событие. Пример отправки события:

$event = new Bitrix\Main\Event("main", "OnPageStart");
$event->send();

При необходимости есть возможность на стороне, отправляющей событие, получить результат обработки события принимающими сторонами.

foreach ($event->getResults() as $eventResult)
{
    switch($eventResult->getType())
    {
        case \Bitrix\Main\EventResult::ERROR:
            // обработка ошибки
        case \Bitrix\Main\EventResult::SUCCESS:
            // успешно
            $handlerRes = $eventResult->getParameters(); // получаем то, что вернул нам обработчик события
        case \Bitrix\Main\EventResult::UNDEFINED:
            /* обработчик вернул неизвестно что вместо объекта класса \Bitrix\Main\EventResult
            его результат по прежнему доступен через getParameters
            */
            break;
    }
}

Для уменьшения количества кода могут быть созданы наследники класса Bitrix\Main\Event для специфических типов событий. Например, Bitrix\Main\Entity\Event делает более комфортной отправку событий, связанных с модификацией сущностей.


Список ссылок по теме:

18
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии