Руководство по EventManager в 1С-Битрикс: управление событиями и обработчиками

EventManager - это класс, предназначенный для краткосрочной и долгосрочной регистрации обработчиков событий. Он реализует паттерн Singleton (Одиночка), что означает, что существует только один экземпляр этого класса в приложении. Доступ к этому экземпляру осуществляется через метод getInstance().

EventManager в 1С-Битрикс: управление событиями и обработчиками

Оглавление

Описание

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

Методы

getInstance

@staticmethod
def getInstance():
    # Возвращает единственный экземпляр EventManager

Описание: Метод getInstance возвращает единственный экземпляр класса EventManager. Если экземпляр еще не создан, он будет создан при первом вызове этого метода.

Возвращаемое значение:

  • EventManager: Единственный экземпляр класса EventManager.

registerHandler

def registerHandler(self, event_name, handler):
    # Регистрирует обработчик для указанного события

Описание: Метод registerHandler регистрирует обработчик для указанного события. Обработчик будет вызван каждый раз, когда событие будет вызвано.

Параметры:

  • event_name (str): Имя события, для которого регистрируется обработчик.
  • handler (callable): Функция или метод, который будет вызван при возникновении события.

unregisterHandler

def unregisterHandler(self, event_name, handler):
    # Удаляет обработчик для указанного события

Описание: Метод unregisterHandler удаляет обработчик для указанного события. Обработчик больше не будет вызван при возникновении этого события.

Параметры:

  • event_name (str): Имя события, для которого удаляется обработчик.
  • handler (callable): Функция или метод, который будет удален.

triggerEvent

def triggerEvent(self, event_name, *args, **kwargs):
    # Вызывает все зарегистрированные обработчики для указанного события

Описание: Метод triggerEvent вызывает все зарегистрированные обработчики для указанного события. Все аргументы, переданные в этот метод, будут переданы обработчикам.

Параметры:

  • event_name (str): Имя события, которое нужно вызвать.
  • *args: Позиционные аргументы, которые будут переданы обработчикам.
  • **kwargs: Именованные аргументы, которые будут переданы обработчикам.

Примеры использования

Регистрация и удаление обработчиков

def on_event_triggered(arg1, arg2):
    print(f"Event triggered with args: {arg1}, {arg2}")

# Получаем экземпляр EventManager
event_manager = EventManager.getInstance()

# Регистрируем обработчик
event_manager.registerHandler("my_event", on_event_triggered)

# Удаляем обработчик
event_manager.unregisterHandler("my_event", on_event_triggered)

Вызов события

def on_event_triggered(arg1, arg2):
    print(f"Event triggered with args: {arg1}, {arg2}")

# Получаем экземпляр EventManager
event_manager = EventManager.getInstance()

# Регистрируем обработчик
event_manager.registerHandler("my_event", on_event_triggered)

# Вызываем событие
event_manager.triggerEvent("my_event", "arg1_value", "arg2_value")

В этом примере при вызове события my_event будет вызван обработчик on_event_triggered с аргументами arg1_value и arg2_value.

Теги:  D7, справочник

Интернет-магазин от 120 000 руб., срок от 4 недель

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

Корпоративный сайт от 60 000 руб., срок от 3 недель

Готовый информационный ресурс, включающий лицензию на 1С-Битрикс «Стандарт», технологию «Композитный сайт».

Лендинг от 25 000 руб., срок от 2 недель

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