Метод putMany
Метод putMany класса Cache предназначен для массовой записи данных в кэш. Он принимает два параметра: ассоциативный массив, где ключи - это названия элементов, а значения - данные для кэширования, и время жизни в секундах или объект DateInterval. В отличие от метода put, который записывает один элемент, putMany позволяет выполнить множественную вставку за один вызов.
Синтаксис
<?php
Cache::putMany($values, $ttl);
?>
Пример
Давайте запишем в кэш несколько элементов с разными значениями и временем жизни в одну минуту:
<?php
use Illuminate\Support\Facades\Cache;
$data = [
'user_1' => 'John Doe',
'user_2' => 'Jane Smith',
'user_3' => 'Bob Johnson'
];
Cache::putMany($data, 60);
$res = Cache::get('user_1');
echo $res;
?>
Результат выполнения кода:
"John Doe"
Пример
Давайте запишем в кэш массив данных о статьях с временем жизни в две минуты:
<?php
use Illuminate\Support\Facades\Cache;
$articles = [
'article_1' => ['id' => 1, 'title' => 'First article'],
'article_2' => ['id' => 2, 'title' => 'Second article'],
'article_3' => ['id' => 3, 'title' => 'Third article']
];
Cache::putMany($articles, 120);
$res = Cache::get('article_2');
var_dump($res);
?>
Результат выполнения кода:
"array(2) {
["id"]=> int(2)
["title"]=> string(14) "Second article"
}"
Пример
Давайте используем объект DateInterval для указания времени жизни в десять минут:
<?php
use Illuminate\Support\Facades\Cache;
use DateInterval;
$settings = [
'theme' => 'dark',
'locale' => 'ru',
'timezone' => 'Europe/Moscow'
];
$ttl = new DateInterval('PT10M');
Cache::putMany($settings, $ttl);
$res = Cache::get('locale');
echo $res;
?>
Результат выполнения кода:
"ru"
Пример
Давайте запишем в кэш информацию о пользователях с использованием числовых ключей:
<?php
use Illuminate\Support\Facades\Cache;
$users = [
'user_100' => 'Admin',
'user_101' => 'Moderator',
'user_102' => 'User'
];
Cache::putMany($users, 300);
$res = Cache::get('user_101');
echo $res;
?>
Результат выполнения кода:
"Moderator"
Пример
Давайте запишем в кэш несколько ключей с пустыми значениями и проверим их наличие:
<?php
use Illuminate\Support\Facades\Cache;
$emptyData = [
'empty_key_1' => null,
'empty_key_2' => null,
'empty_key_3' => null
];
Cache::putMany($emptyData, 30);
$res = Cache::has('empty_key_1') ? 'exists' : 'not exists';
echo $res;
?>
Результат выполнения кода:
"exists"