Компоненты и модули
Что это даёт бизнесу: функциональность собирается из независимых блоков — можно подключить нужное, не трогая остальное, и наращивать систему поэтапно.
Компоненты — это самостоятельные функциональные блоки, из которых строится проект. Каждый компонент инкапсулирует свою логику: интерфейс для пользователя, административную часть, работу с данными, шаблоны и обработку событий. Компонентом может быть каталог товаров, корзина, личный кабинет, модуль платежей, форум, система уведомлений — любая законченная функция.
Компоненты бывают разного масштаба: полноценные (с публичной и административной частью), служебные (только логика и API, без интерфейса) и обработчики событий (реагируют на действия других компонентов). Такое разделение позволяет подключать ровно тот объём функциональности, который нужен проекту, — без лишних сущностей и без необходимости дорабатывать ядро.
Компоненты взаимодействуют через события, а не через прямые вызовы. Это значит, что новый модуль подключается к системе, не изменяя код существующих: например, модуль аналитики можно добавить к работающему магазину, не затрагивая логику заказов. Такая слабая связанность упрощает поддержку, снижает риск регрессий и позволяет заменять или выделять отдельные модули в самостоятельные сервисы по мере роста проекта.
Модули (виджеты) — независимые блоки контента, которые размещаются в зонах страницы (шапка, боковая панель, подвал). Они позволяют управлять наполнением страниц без разработки: менять состав блоков, их порядок и содержимое через административную панель.
Мини-кейс. Площадка расширяется поэтапно: от интернет-магазина до мультивендорного маркетплейса, от портала до CRM — без миграции данных и переписывания архитектуры. Новый модуль подключается к событиям, не изменяя код существующих компонентов.