как общие, так и различающиеся поля.
Нужно выводить их на странице примерно в одинаковым стиле, но с учётом типа содержимого.
Например, для video в заголовке вместо ссылки на страниу сайта должна быть ссылка на внешний видеосервис. И т.п.
Загвоздка: элементы имеют несколько видов отображения: превьюшка для главной сстранице, превьюшка для сайдбара, превьюшка для блока «смотрите также» и т.п.
Вопрос: как в ларике лучше всего разрулить подобные различия с ниминальной копимастой и максимальной гибкостью? Будут добавляться другие виды записей и отображений.
В голову приходят несколько вариантов. Например, запилить в классы моделей мутаторы на несуществующие атрибуты.
Например, для ссылки на страницу сделать getOpenLinkAttribute и в каждом классе имплементировать логику. Но тут 2 недостатка: 1 — модель начинает знать логику отображение, что не по SOLID и 2 — каждый дополнительный метод в классе увеличивает кол-во потребляемой объектом памяти. Т.к. на странице могут отображаться десятки сущностей — оверхед будет исчисляться в мегабайтах на каждый запрос.
Какие есть best practices для подобных ситуаций?
Сделай общую сущность - «медиа». А тип медиа определяй динамически и через еав модель линкуй. Вариант наверное не очень, но простой
Обсуждают сегодня