РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
861 of 1392 menu

Метод rememberForever

Метод rememberForever применяется к фасаду Cache и позволяет получить данные из кеша по ключу. Если данные отсутствуют, метод выполняет переданное замыкание и сохраняет результат в кеш на бесконечный срок. Первым параметром передаётся ключ, вторым - замыкание, которое возвращает значение для сохранения.

Синтаксис

<?php use Illuminate\Support\Facades\Cache; $value = Cache::rememberForever($key, $callback); ?>

Пример

Давайте получим данные из кеша по ключу 'user_count'. Если их нет, выполним запрос к базе данных и сохраним результат навсегда:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Cache; use App\Models\User; class UserController extends Controller { public function index() { $count = Cache::rememberForever('user_count', function () { return User::count(); }); echo $count; } } ?>

Результат выполнения кода:

"150"

Пример

Давайте сохраним в кеш сложные данные, например, массив популярных статей. Если данные отсутствуют в кеше, они будут получены из базы и сохранены навсегда:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Cache; use App\Models\Article; class ArticleController extends Controller { public function popular() { $articles = Cache::rememberForever('popular_articles', function () { return Article::where('views', '>', 100) ->orderBy('views', 'desc') ->limit(5) ->get(); }); foreach ($articles as $article) { echo $article->title . "\n"; } } } ?>

Результат выполнения кода:

"Article 1" "Article 2" "Article 3" "Article 4" "Article 5"

Пример

Рассмотрим случай, когда нам нужно сохранить результат выполнения ресурсоёмкой операции. Метод rememberForever отлично подходит для кеширования результатов вычислений:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Cache; class StatisticController extends Controller { public function show() { $stats = Cache::rememberForever('site_statistics', function () { $res = [ 'total_users' => 1250, 'total_orders' => 3456, 'total_revenue' => 78910 ]; return $res; }); echo json_encode($stats); } } ?>

Результат выполнения кода:

"{"total_users":1250,"total_orders":3456,"total_revenue":78910}"

Смотрите также

  • класс Cache,
    который предоставляет методы для работы с кешем
  • метод get,
    который получает данные из кеша по ключу
  • метод forever,
    который сохраняет данные в кеш навсегда
  • метод remember,
    который сохраняет данные в кеш на определённое время
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить