Рассмотрим модули сторонних разработчиков:
- Модуль АВ SEO Фильтры (priority - 100000000)
- Свой кастовый модуль изменений My Changes (priority - 98001)
В модуле My Changes необходимо сделать изменения для SEO Фильтры. Для этого разработчики АВ зарегистрировали в своем модуле хук ab__sf_category_preparing_data_pre При подключении к хуку распечатаем последовательность выполнения кода. Код выполняется в таком порядке:
- подключение к хуку в модуле My Changes
- код модуля SEO Фильтры в котором этот хук объявлен
Как так получается, что подключенный к хуку код выполняется до самого кода в котором он зарегистрирован? А дело в приоритете ‘priority’ в addon.xml - модуль My Changes имеет меньший приоритет 98001, а значит выполняется до модуля SEO Фильтры с большим приоритетом - 100000000 Но хуки должны вызываться только при выполнении кода в котором они объявлены.