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

Класс Cache

Класс Cache является фасадом для работы с системой кэширования Laravel. Он предоставляет удобный интерфейс для хранения, получения и управления кэшированными данными. Класс поддерживает различные драйверы: файловый, база данных, Redis, Memcached и другие. Основные методы класса позволяют сохранять данные с указанием времени жизни, получать данные по ключу, проверять их наличие, удалять и выполнять атомарные операции.

Получение данных из кэша

Метод get используется для извлечения значения по ключу. Первым параметром передаётся ключ, вторым - значение по умолчанию, которое будет возвращено, если ключ отсутствует в кэше.

<?php use Illuminate\Support\Facades\Cache; $value = Cache::get('user_data', 'default_value'); echo $value; ?>

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

"default_value"

Сохранение данных в кэш

Метод put сохраняет значение в кэш с указанием времени жизни в секундах. Первым параметром передаётся ключ, вторым - значение, третьим - количество секунд, в течение которых данные будут считаться актуальными.

<?php use Illuminate\Support\Facades\Cache; Cache::put('user_data', ['name' => 'John', 'age' => 30], 3600); $user = Cache::get('user_data'); print_r($user); ?>

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

["name" => "John", "age" => 30]

Добавление данных с проверкой существования

Метод add добавляет значение в кэш только в том случае, если ключ ещё не существует. Возвращает true при успешном добавлении и false, если ключ уже присутствует в кэше.

<?php use Illuminate\Support\Facades\Cache; $result = Cache::add('counter', 1, 60); echo $result ? 'Added' : 'Not added'; $result2 = Cache::add('counter', 2, 60); echo $result2 ? 'Added' : 'Not added'; ?>

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

"AddedNot added"

Сохранение данных на неограниченный срок

Метод forever сохраняет данные в кэш без ограничения по времени. Такие данные будут храниться до тех пор, пока их явно не удалить с помощью метода forget.

<?php use Illuminate\Support\Facades\Cache; Cache::forever('settings', ['theme' => 'dark', 'language' => 'ru']); $settings = Cache::get('settings'); print_r($settings); ?>

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

["theme" => "dark", "language" => "ru"]

Получение данных с автоматическим кэшированием

Метод remember извлекает данные из кэша, а если они отсутствуют, выполняет переданное замыкание для их получения и автоматически сохраняет результат в кэш с указанным временем жизни. Это удобно для кэширования результатов тяжёлых операций.

<?php use Illuminate\Support\Facades\Cache; $users = Cache::remember('users_list', 600, function () { return User::where('active', true)->get(); }); foreach ($users as $user) { echo $user->name . ' '; } ?>

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

"John Jane Bob Alice"

Проверка наличия ключа в кэше

Метод has проверяет существование ключа в кэше. Возвращает true, если ключ существует, и false в противном случае.

<?php use Illuminate\Support\Facades\Cache; Cache::put('test_key', 'test_value', 60); $hasKey = Cache::has('test_key'); echo $hasKey ? 'Key exists' : 'Key not found'; $hasMissing = Cache::has('missing_key'); echo $hasMissing ? 'Key exists' : 'Key not found'; ?>

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

"Key existsKey not found"

Удаление данных из кэша

Метод forget удаляет указанный ключ из кэша. Если ключ не существует, метод ничего не делает.

<?php use Illuminate\Support\Facades\Cache; Cache::put('temp_data', 'some value', 60); Cache::forget('temp_data'); $value = Cache::get('temp_data', 'not found'); echo $value; ?>

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

"not found"

Очистка всего кэша

Метод flush удаляет все данные из кэша. Будьте осторожны с этим методом, так как он очищает всё кэшированное содержимое для текущего драйвера.

<?php use Illuminate\Support\Facades\Cache; Cache::put('key1', 'value1', 60); Cache::put('key2', 'value2', 60); Cache::flush(); $hasKey1 = Cache::has('key1'); $hasKey2 = Cache::has('key2'); echo $hasKey1 ? 'has' : 'empty'; echo $hasKey2 ? 'has' : 'empty'; ?>

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

"emptyempty"

Использование метода pull

Метод pull извлекает значение из кэша и одновременно удаляет его. Это полезно для получения и удаления данных за одну операцию.

<?php use Illuminate\Support\Facades\Cache; Cache::put('temp_token', 'abc123', 60); $token = Cache::pull('temp_token'); echo $token; $tokenAgain = Cache::get('temp_token', 'not found'); echo $tokenAgain; ?>

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

"abc123not found"

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

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