setMulti() public method

Return value will be an associative array in [key => status] form, where status is a boolean true for success, or false for failure. setMulti is preferred over multiple individual set operations as you'll set them all in 1 request.
public setMulti ( array $items, integer $expire ) : bool[]
$items array [key => value]
$expire integer Time when item falls out of the cache: 0 = permanent (doesn't expires); under 2592000 (30 days) = relative time, in seconds from now; over 2592000 = absolute time, unix timestamp
return bool[]
Esempio n. 1
0
 /**
  * {@inheritdoc}
  */
 public function setMultiple($items, $ttl = null)
 {
     if ($items instanceof Traversable) {
         $items = iterator_to_array($items);
     }
     $keys = array_keys($items);
     if (!is_array($keys) || array_filter($keys, 'is_string') !== $keys) {
         throw new InvalidArgumentException('Invalid keys: ' . serialize($keys) . '. Must be array of strings.');
     }
     $ttl = $this->ttl($ttl);
     $success = $this->store->setMulti($items, $ttl);
     return !in_array(false, $success);
 }
Esempio n. 2
0
 /**
  * {@inheritdoc}
  */
 public function commit()
 {
     $deferred = array();
     foreach ($this->deferred as $key => $item) {
         if ($item->isExpired()) {
             // already expired: don't even save it
             continue;
         }
         // setMulti doesn't allow to set expiration times on a per-item basis,
         // so we'll have to group our requests per expiration date
         $expire = $item->getExpiration();
         $deferred[$expire][$item->getKey()] = $item->get();
     }
     // setMulti doesn't allow to set expiration times on a per-item basis,
     // so we'll have to group our requests per expiration date
     $success = true;
     foreach ($deferred as $expire => $items) {
         $status = $this->store->setMulti($items, $expire);
         $success &= !in_array(false, $status);
         unset($deferred[$expire]);
     }
     return (bool) $success;
 }
Esempio n. 3
0
 /**
  * {@inheritdoc}
  */
 public function setMulti(array $items, $expire = 0)
 {
     return $this->cache->setMulti($items, $expire);
 }