Меню
Менеджер событий (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 оправдано.
  • Всегда учитывайте баланс между производительностью и удобством поддержки кода.
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

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

Получить все поля раздела, включая пользовательские, в section.php

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

Помечаем новинки лейблом в каталоге битрикс

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

CRM Битрикс-24 на веб-окружении под Ubuntu 24.04, c поддержкой PUSH и многосайтовости

Задача: Так как с 30 июня 2024 года операционная система CentOS-7 полностью снята с поддержки и не будет получать обновл...

Привязка к разделам в компоненте "Добавления элементов пользователем"

В системе управления 1С Битрикс есть компонент "Форма добавления / редактирования" - который позволяет пользователям доб...

Получить и вывести пользовательские свойства склада в 1С-Битрикс

Задача: вывести пользовательские свойства в подробном описании склада. При этом, есть и множественные и одиночные поля.

Самодельная форма добавления элемента на API Битрикс

Компонент iblock.element.add.form написан таким образом, что вы не сможете (не попотев изрядно и не используя js) как уг...

Объединить отдельные поля ФИО в одно свойство при оформлении заказа.

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

Использование WebP изображений в 1С-Битрикс (на Битрикс: Веб окружение)

WebP это современный формат сжатия изображений, который позволяет, при правильных настройках и уровнях сжатий, уменьшить...

Звездочки в рейтинге Битрикс статей и товаров каталога

Задача: изменить вывод рейтинга элемента на звездочки, с помощью шаблона iblock.vote в товарах и новостях.