Сниппеты
Назад к сниппетам

Bitrix /local: events.php — регистрация обработчиков событий

Подключение обработчиков через EventManager::getInstance()->addEventHandler. Только привязка событий к классам, логика — в сервисах.

php
8 февраля 2026 г.

Регистрация обработчиков событий через EventManager: только привязка модуль/событие к классу и методу. Бизнес-логика остаётся в классах из /local/php_interface/lib.

<?php
// /local/php_interface/events.php

use Bitrix\Main\EventManager;

$eventManager = EventManager::getInstance();

$eventManager->addEventHandler(
    'sale',
    'OnOrderSaved',
    ['Project\\Services\\OrderService', 'onOrderSaved']
);

$eventManager->addEventHandler(
    'iblock',
    'OnAfterIBlockElementAdd',
    ['Project\\Services\\CatalogService', 'onElementAdd']
);

Замечания

  • EventManager::getInstance() — единственная точка доступа (Singleton). В обработчик передаётся объект BitrixMainEvent; параметры — через $event->getParameter('ENTITY') и др.
  • Третий аргумент addEventHandler — массив [класс, метод] или имя функции; для классов метод должен быть публичным и статическим (либо callable).
  • Имена событий зависят от модуля: iblockOnAfterIBlockElementAdd, OnBeforeIBlockElementUpdate и т.д.; sale — см. документацию модуля sale. При сомнениях смотрите вызовы GetModuleEvents или исходники модуля.
Bitrix /local: events.php — регистрация обработчиков событий | Viku-Lov Studio