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;
}