RetrievesMultipleKeys.php
TLDR
This file provides the RetrievesMultipleKeys
trait, which contains two methods for retrieving and storing multiple items in the cache.
Methods
many
Retrieve multiple items from the cache by key. Items not found in the cache will have a null value.
Parameters:
-
keys
(array): An array of keys to retrieve.
Returns:
-
array
: An array of retrieved items.
putMany
Store multiple items in the cache for a given number of seconds.
Parameters:
-
values
(array): An array of key-value pairs to store. -
seconds
(int): The number of seconds to store the items in the cache.
Returns:
-
bool
: True if all items were successfully stored in the cache, false otherwise.
<?php
namespace Illuminate\Cache;
trait RetrievesMultipleKeys
{
/**
* Retrieve multiple items from the cache by key.
*
* Items not found in the cache will have a null value.
*
* @param array $keys
* @return array
*/
public function many(array $keys)
{
$return = [];
$keys = collect($keys)->mapWithKeys(function ($value, $key) {
return [is_string($key) ? $key : $value => is_string($key) ? $value : null];
})->all();
foreach ($keys as $key => $default) {
$return[$key] = $this->get($key, $default);
}
return $return;
}
/**
* Store multiple items in the cache for a given number of seconds.
*
* @param array $values
* @param int $seconds
* @return bool
*/
public function putMany(array $values, $seconds)
{
$manyResult = null;
foreach ($values as $key => $value) {
$result = $this->put($key, $value, $seconds);
$manyResult = is_null($manyResult) ? $result : $result && $manyResult;
}
return $manyResult ?: false;
}
}