Implements Drupal\Core\Cache\CacheBackendInterface::set().
Overrides CacheBackendInterface::set
public function set($cid, $data, $expire = CacheBackendInterface::CACHE_PERMANENT, array $tags = array()) {
$try_again = FALSE;
try {
// The bin might not yet exist.
$this
->doSet($cid, $data, $expire, $tags);
} catch (\Exception $e) {
// If there was an exception, try to create the bins.
if (!($try_again = $this
->ensureBinExists())) {
// If the exception happened for other reason than the missing bin
// table, propagate the exception.
throw $e;
}
}
// Now that the bin has been created, try again if necessary.
if ($try_again) {
$this
->doSet($cid, $data, $expire, $tags);
}
}