Документация для разработчиков
Темная тема

AddEventHandler

Описание и параметры

AddEventHandler(
	string from_module_id,
	string MESSAGE_ID,
	mixed callback,
	int sort = 100,
	mixed full_path = false
);

Регистрирует произвольный обработчик callback события MESSAGE_ID модуля from_module_id. Если указан полный путь к файлу с обработчиком full_path, то он будет автоматически подключен перед вызовом обработчика. Вызывается на каждом хите и работает до момента окончания работы скрипта.

Параметры функции

ПараметрОписание
from_module_id Идентификатор модуля который будет инициировать событие.
MESSAGE_ID Идентификатор события.
callback Название функции обработчика. Если это метод класса, то массив вида Array(класс(объект), название метода).
sort Очередность (порядок), в котором выполняется данный обработчик (обработчиков данного события может быть больше одного).
Необязательный параметр, по умолчанию равен 100.
full_path Полный путь к файлу для подключения при возникновении события перед вызовом callback.

Примечание

Все зарегистрированные обработчики хранятся в глобальной переменной $MAIN_MODULE_EVENTS.

Аналоги в ядре D7

У функции есть аналоги в ядре D7.

Обратите внимание, порядок параметров в них отличается: подключение файла выполняется перед сортировкой.


  • Bitrix\Main\EventManager::addEventHandler — регистрирует обработчик события. В качестве аргумента передается объект события Bitrix\Main\Event.
    EventManager::addEventHandler(
        $fromModuleId,
        $eventType,
        $callback,
        $includeFile = false,
        $sort = 100
    )
    
  • Bitrix\Main\EventManager::addEventHandlerCompatible — регистрирует обработчик события со старыми аргументами.
    EventManager::addEventHandlerCompatible(
        $fromModuleId,
        $eventType,
        $callback,
        $includeFile = false,
        $sort = 100
    )
    

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

<?
// скрипт в файле /bitrix/php_interface/init.php
AddEventHandler("main", "OnBeforeUserLogin", Array("MyClass", "BeforeLogin"));
class MyClass { function BeforeLogin(&$arFields) { if(strtolower($arFields["LOGIN"])=="guest") { global $APPLICATION; $APPLICATION->throwException("Пользователь с именем входа Guest не может быть авторизован."); return false; } } } ?>


© «Битрикс», 2001-2025, «1С-Битрикс», 2025