Компоненты

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

В DPCMS логика на фронте разнесена по компонентам — независимым блокам, каждый со своим PHP-классом и набором шаблонов. Каждый компонент решает узкую задачу и не знает о соседях: можно отключить любой, и остальные продолжат работать.

Зоны ответственности

Как они устроены

Каждый компонент изолирован: своя БД-таблица настроек, свои шаблоны, свой жизненный цикл. Один и тот же компонент можно использовать на странице несколько раз с разными параметрами — например, вывести два разных списка с разной фильтрацией.

Параметры передаются в момент использования: имя секции, шаблон отображения, сортировка, лимит, кастомные фильтры. Это означает, что новые блоки на странице обычно добавляются без правки кода — только настройкой в админке.

Расширяемость

Свой компонент пишется по тому же контракту: класс с методом run(), набор HTML-шаблонов, регистрация в админке. После этого он доступен везде наравне со штатными.