Bitrix /local: events.php — регистрация обработчиков событий
Подключение обработчиков через EventManager::getInstance()->addEventHandler. Только привязка событий к классам, логика — в сервисах.
Как использовать
- Разместите файл в /local/php_interface/events.php и подключите из init.php после autoload.php.
- Обработчики реализуйте статическими методами в классах (например OrderService::onOrderSaved), классы загружаются через autoload.php.
- Имена событий проверяйте в документации модуля (sale, iblock и т.д.).
Регистрация обработчиков событий через 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). В обработчик передаётся объект\Bitrix\Main\Event; параметры — через$event->getParameter('ENTITY')и др.- Третий аргумент
addEventHandler— массив[класс, метод]или имя функции; для классов метод должен быть публичным и статическим (либо callable). - Имена событий зависят от модуля:
iblock—OnAfterIBlockElementAdd,OnBeforeIBlockElementUpdateи т.д.;sale— см. документацию модуля sale. При сомнениях смотрите вызовыGetModuleEventsили исходники модуля.