@Analka

Повтор запроса и его кеширование?

Всем привет. Возник вопрос

у меня часто повторяется вот этот запрос

Article::find($id);

я его хочу закешировать, но как быть, если он сидит в нескольких сервисах и контроллерах?

Я думал вынести его в класс ArticleQuery.php и там хранить запросы по модели Article

class ArticleQuery 
{
   public function getById(int $id) {
      Cache::remember('article_'.$id, $minutes, function () {
        return Article::find($id);
     });
   }
}


и вызывать уже типа
$articleQuery->getById($id)

Как кто решает такие проблемы?
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
pLavrenov
@pLavrenov
Разработка сайтов
Это решается вот так

По сути это слой получения данных. в контроллерах надо будет получать из репозитория и тогда если понадобится изменить способ получения записей (или например ключ кэша) достаточно будет поменять только в репозитории.

И в твоем коде ошибка. ID не передается в колбэк а $minutes вообще не существует.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы