Меню
RSS
Менеджер событий (EventManager) в 1C-Битрикс
 
Менеджер событий (EventManager) в 1C-Битрикс

Менеджер событий (EventManager) — это централизованный механизм регистрации, обработки и управления событиями. Он обеспечивает гибкость и удобство работы с событиями в рамках D7 API.
 
Если вы подключаете классы с помощью use, то эти классы будут загружены в скрипт при каждом его вызове, даже если обработчик фактически не выполняется. Это может немного повлиять на производительность, особенно если обработчик используется редко.

Код
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    "iblock",
    "OnAfterIBlockElementUpdate",
    ["UpdateBulletinsElements", "onAfterIBlockElementUpdateHandler"]
);

class UpdateBulletinsElements
{
    public static function onAfterIBlockElementUpdateHandler(&$arFields)
    {
        \Bitrix\Main\Loader::includeModule('iblock'));

        // Подключаем классы внутри обработчика
        $currentDate = new \Bitrix\Main\Type\DateTime();
        $dateActiveFrom = $currentDate->toString();
        $dateActiveTo = $currentDate->add('14D')->toString();

        // Обновляем элемент инфоблока
            $el = new CIBlockElement();
            $el->Update(
                $arFields['ID'],
                [
                    'ACTIVE_FROM' => $dateActiveFrom,
                    'ACTIVE_TO' => $dateActiveTo
                ]
            );
    }
}

В этом случае классы загружаются только тогда, когда они действительно нужны, что снижает нагрузку на сервер.
  • Если обработчик вызывается редко, подключайте классы внутри обработчика.
  • Если обработчик используется часто, то использование use оправдано.
  • Всегда учитывайте баланс между производительностью и удобством поддержки кода.
Изменено: Михаил Базаров - 30.12.2024 14:05:54
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Bst

Блог-note: заметки разработчика

Менять большую картинку, при клике на маленькую, в детальной карточке

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

Работа с HTTP-запросами в Bitrix: Обзор возможностей класса \Bitrix\Main\HttpRequest

Класс \Bitrix\Main\HttpRequest, является наследником класса Request, представляет собой мощный инструмент для работы с д...

Создание блога с комментариями, оценками и просмотрами на сайте с 1С-Битрикс

Если на вашем сайте требуется создание раздела с блогом или новостями, статьями. Записям в которых, посетители смогу ста...

Связанные элементы в карточке товара, с помощью catalog.section

Достаточно часто, при разработке магазинов на битрикс, требуется выводить связанные элементы внутри карточки товара. Д...

Вывести информацию, только на первом уровне раздела каталога, в 1С-Битрикс

Задача: на сайте, в каталоге, выводится два фильтра - боковой и верхний. Оба компонента подключены в файле section.php к...

Получение доступа к железу устройства из Битрикс мобильное приложение

Документация к мобильному приложению 1С-Битрикс очень куцая. В основном описывает функционал добавляемый BXMobileApp. ...

Вывести новости из конкретного раздела инфоблока Битрикс

Бывает что требуется вывести конкретные новости или статьи из одного раздела инфоблока в Битрикс, для этого потребуется ...

Удаление товара из корзины по кнопке "минус" если остался 1 товар

Задача: когда в корзине осталась одна единица товара, нужно удалять товар по нажатию на кнопку "минус". Остави...

Основные функции вывода в шаблонах Битрикс

Знаю, что все их знают. Но иногда не бывает лишним собрать все самое используемое в одну кучку. Ведь у каждого бывают мо...