MegaMufa
@MegaMufa

Где кэшировать данные: в модели или в контроллере?

Есть сайт на Yii. Приложение построено по принципу "толстая модель, тонкий контроллер". Полностью все операции проводятся в моделях. Контроллер только говорит, что вернуть и запускает нужные вьюхи.

Встал вопрос о кешировании. И вот я задумался, а где правильно кэшировать данные? Проще сделать это в модели ибо будет проще следить за валидностью кэша. Но при этом это излишни усложнит модели, которые и без того не слабые.

Подскажите, где правильнее кэшировать данные?
  • Вопрос задан
  • 2654 просмотра
Пригласить эксперта
Ответы на вопрос 3
metamorph
@metamorph
...а с учетом того, что мы можем иногда просить кешированные данные (для фронтэнда) а иногда не кешированные (для админки) становится совсем весело :)

В общем, от ситуации зависит. Забейте на "как правильно по MVC", думайте о том, как правильно по логике приложения.

Сейчас как-то модно стало следовать бессмысленным шаблонам проектирования и перегружать модели функционалом (куча методов "вернутьТакиеДанные(), вернутьДругиеДанные()), тогда как через контроллер решилось бы проще и понятнее.
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
В общем случае, если говорить о данных, то модель, по-хорошему, должна уметь это делать прозрачно. У неё запросили данные - а откуда она их взяла - не нашего ума дело.
Ответ написан
Комментировать
@Von_Der_Shulenburg
При правильной архитектуре контроллер вообще ничего не должен знать о кэшировании и работе с БД. Все это выполняется на уровне модели
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы