Controller и наследники
Все контроллеры — это синглтоны, получаемые через getInstance
. Работа с ними в основном ведется через методы on[SomeEventName]
, которые вызываются, чтобы зарегистрировать событие. Все такие методы имеют собственную реализацию. Но в целом их алгоритм выглядит следующим образом:
- Создать необходимую запись в таймлайне с использованием TimelineEntry;
- Если нужно, то подготовить данные для отображения события на фронте (HistoryDataModel);
- Отправить push-событие.
FactoryBasedController
FactoryBasedController - контроллер таймлайна для новых сущностей.
Сущности CRM постепенно переписываются на использование нового API. Для этого необходимо обеспечить поддержку нового подхода к работе в различных местах. Таймлайн не исключение.
В связи с этим был создан абстрактный класс \Bitrix\Crm\Timeline\FactoryBasedController
. Он является базовым для всех контроллеров таймлайна для сущностей, работающих на основе фабрики. Он обеспечивает максимально универсальную реализацию функционала регистрации событий в таймлайн.