Руководство по 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, справочник

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Модули и компоненты для «1С-Битрикс»

оценка производится на основе предоставленного Технического Задания

от 20 000 рублей
Разработка дополнительных модулей для 1С-Битрикс, расширение функционала, внедрение любых решений, требующихся для выполнения ваших бизнес-задач.

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

Интернет-магазин на готовом решении

от 7 дней

от 40 000 рублей
запуск сайта в максимально короткие сроки

* указана минимальная стоимость. Стоимость выбранной лицензии «1С-Битрикс» оплачивается отдельно.

Лендинг

от 3 дней

от 25 000 рублей

Разработка одностраничного сайта на платформе Битрикс

* стоимость зависит от наличия верстки, использования готового решения и т.д.