Ответы пользователя по тегу Memcached
  • Кеширование данных "правильнее" описывать в модели или контроллере?

    В репозитории. Модель простой POPO, о БД вообще ничего не знает, её единственная область ответственности — моделировать предметную область. Ответственность репозитория — хранить сущности модели, где и как только он знает. Как вариант, да, прокси, реализующий тот же интерфейс, что и «чистый» репозиторий. Другой вариант — кэшировать результаты запросов ещё ниже, где-то на уровне DBAL/DAL. Но на практике только прямо в репозитории реализовывал, что-то вроде

    class UserRepository {
      public function getById($id) {
        if ($this->cache->hasKey('user' . $id)) {
          $user = $this->cache->getByKey('user' . $id);
        } else {
          $user = $this->db->getUserById($id);
          $this->cache->set('user' . $id, $user);
        }
    }
    
    Ответ написан
    Комментировать