Обработчики событий в модулях Битрикс

В Битриксе мощный функционал событий, который позволяет расширять и изменять стандартную логику системы не вмешиваясь в её внутренний код, а следовательно не мешая обновлению ядра. Любой программист на Битриксе хоть раз регистрировал свои обработчики для работы с отправкой писем или добавлением товара в корзину, или оформлением заказа, или для работы с чем-либо ещё. Для этого мы просто пишем код, зачастую в init.php, где регистрируется обработчик и описывается его логика.

Но как вы зарегистрируете обработчик при установке своего модуля? Куда положите код обработчика? Как отвяжете его при удалении модуля?

Некоторые разработчики знают, что есть функции наподобие:

\Bitrix\Main\EventManager::getInstance()->registerEventHandler()

и

\Bitrix\Main\EventManager::getInstance()->unRegisterEventHandler()

Они позволяют регистрировать обработчик события изнутри модуля. Но вы должны дополнительно позаботиться о вызове этого метода с нужными параметрами и в нужное время. И как-то организовать внутри модуля хранения кода обработчика. Это чисто техническая проблема, а есть ещё и другие.

Ведь как уже упоминалось, система событий Битрикса очень мощная, но это несёт свои определённые трудности. Событий в cms сотни, они вызываются из десятков стандартных модулей и передают разные параметры. Довольно сложно просто узнать про каждое из них, не говоря уже о том, что держать их в памяти.

Но с этими двумя проблемами успешно справляется Конструктор модулей. Чтобы добавить обработчик события в свой модуль, нужно просто заполнить лаконичную форму, где вы укажите модуль, вызывающий событие, и код самого события.

Работа с обработчиками событий в конструкторе

А после этого просто вставить код в специальное окно.

Работа с обработчиками событий в конструкторе. Заполнения тела метода

Причём при вводе кода модуля или события вам предлагаются возможные варианты. А после заполнения этих двух полей входные параметры для обработчика подставляются автоматически.

И это всё что нужно! Не нужно думать над реализацией, хранением, установкой и удалением, просто указываете в форме при каком событии, какой код должен выполниться.

Попробуйте воспользоваться этим удобством бесплатно прямо сейчас и добавить обработчик события в свой модуль.