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

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

Простые калькуляторы в карточке товара каталога на Битрикс

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

Добавление своих полей в почтовые шаблоны Битрикс

Иногда нужно внести свои поля в почтовые шаблоны битрикс. Например: добавить имя и номер телефона заказчика в почтовый ш...

Проверка на наличие элементов, текущего пользователя, в заданном инфоблоке.

Если стоит задача, определить наличие элементов созданных пользователем на сайте. Можно воспользоваться API: CUser и CIB...

Вывод даты создания элемента в правильном формате в Битрикс

Если нужно вывести дату создания новости, статьи или товара в каталоге, в принципе любого элемента инфоблока- можно восп...

Почтовое событие на создание нового элемента инфоблока, через API

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

Добавление в избранное или отложенные, на AJAX из карточки товара

В этой заметке рассакажу как добавлять товары в "Отложенные", для иммитации функционала "Избранное". Для этого будем исп...

Настройка выгрузки товаров в Яндекс Маркет с сайта Битрикс

Настройка выгрузки в Яндекс маркет в формате yml, выполняется достаточно просто, кроме одной заморочки: в типовой постав...

Бонус за выполненный заказ на внутренний счет пользователя

Задача: после того как заказ, в интернет-магазине, перешел в статус "Выполнен" начислить пользователю 5% от стоимости за...

Бонус на внутренний счет пользователя по информации из 1С

Задача: 1С-Предприятие каждый день выгружает HL справочник на сайт с количеством бонусов контрагента в виде "XML-ID...