Метод many
Метод many класса Cache позволяет получить сразу несколько значений из кеша по массиву ключей. В качестве первого параметра передаётся массив ключей, по которым нужно получить значения. Метод возвращает ассоциативный массив, где ключами являются запрошенные ключи кеша, а значениями - соответствующие им данные. Если значение по какому-то ключу отсутствует, то в результате будет null.
Синтаксис
<?php
use Illuminate\Support\Facades\Cache;
$res = Cache::many($keys);
?>
Пример
Давайте положим несколько значений в кеш, а затем получим их с помощью метода many:
<?php
use Illuminate\Support\Facades\Cache;
Cache::put('user', 'John Doe', 60);
Cache::put('age', 30, 60);
Cache::put('city', 'New York', 60);
$res = Cache::many(['user', 'age', 'city']);
print_r($res);
?>
Результат выполнения кода:
[
"user" => "John Doe",
"age" => 30,
"city" => "New York"
]
Пример
Давайте попытаемся получить значения по ключам, которых нет в кеше. В результате для отсутствующих ключей будет null:
<?php
use Illuminate\Support\Facades\Cache;
Cache::put('name', 'Alice', 60);
$res = Cache::many(['name', 'age', 'email']);
print_r($res);
?>
Результат выполнения кода:
[
"name" => "Alice",
"age" => null,
"email" => null
]
Пример
Метод many удобно использовать для получения данных, которые могут храниться в разных хранилищах кеша. Давайте настроим кеш на использование разных драйверов через метод store:
<?php
use Illuminate\Support\Facades\Cache;
$res = Cache::store('file')->many(['key1', 'key2', 'key3']);
print_r($res);
?>
Результат выполнения кода:
[
"key1" => null,
"key2" => null,
"key3" => null
]
Пример
Комбинируйте метод many с методом putMany для массовой работы с кешем:
<?php
use Illuminate\Support\Facades\Cache;
Cache::putMany([
'product' => 'Laptop',
'price' => 1200,
'stock' => 5
], 120);
$res = Cache::many(['product', 'price', 'stock']);
print_r($res);
?>
Результат выполнения кода:
[
"product" => "Laptop",
"price" => 1200,
"stock" => 5
]