В документации есть пример (http://dev.1c-bitrix.ru/api_help/main/events/onbeforeuserregister.php) где нужно зарегистрировать функцию обработчик // регистрируем обработчик события "OnBeforeUserRegister" RegisterModuleDependences("main", "OnBeforeUserRegister", "my_module_id", "MyClass", "OnBeforeUserRegisterHandler"); А ниже пользовательский пример, где обработчик достаточно добавить: // добавляем обработчик события при регистрации AddEventHandler("main", "OnBeforeUserRegister", "OnBeforeUserRegisterHandler"); Подскажите пожалуйста в чём разница, и когда что использовать.
RegisterModuleDependences - делается один раз (при установке модуля) и это "постоянный" обработчик события действует до момента вызова UnRegisterModuleDependences.
AddEventHandler - вызывается на каждом хите - работает до момента окончания работы скрипта.
Евгений Жуков пишет: Обычно в /bitrix/php_interface/init.php
а в коде компонента его можно задать? и если его задавать в init.php, после обновления сайта заданный обработчик останется? есть документация по работе с событиями?
В принципе там все доступно описано, если внимательно почитать и походить по ссылкам внутри документации. По логике вещей, учитывая Порядок выполнения страницы, следующим после подгрузки init.php подгружается /bitrix/php_interface/[ID сайта]/init.php, который не обновляется (единственный минус, что, если нужно выполнять обработчик на всех сайтах, то нужно прописать это в каждом файле init.php для каждого сайта).