function DatabaseBackend::setMultiple

Same name and namespace in other branches
  1. 8.9.x core/lib/Drupal/Core/Cache/DatabaseBackend.php \Drupal\Core\Cache\DatabaseBackend::setMultiple()
  2. 10 core/lib/Drupal/Core/Cache/DatabaseBackend.php \Drupal\Core\Cache\DatabaseBackend::setMultiple()
  3. 11.x core/lib/Drupal/Core/Cache/DatabaseBackend.php \Drupal\Core\Cache\DatabaseBackend::setMultiple()

Store multiple items in the persistent cache.

Parameters

array $items: An array of cache items, keyed by cid. In the form:

$items = array(
    $cid => array(
        // Required, will be automatically serialized if not a string.
'data' => $data,
        // Optional, defaults to CacheBackendInterface::CACHE_PERMANENT.
'expire' => CacheBackendInterface::CACHE_PERMANENT,
        // (optional) The cache tags for this item, see CacheBackendInterface::set().
'tags' => array(),
    ),
);

Overrides CacheBackendInterface::setMultiple

1 call to DatabaseBackend::setMultiple()
DatabaseBackend::set in core/lib/Drupal/Core/Cache/DatabaseBackend.php
Stores data in the persistent cache.

File

core/lib/Drupal/Core/Cache/DatabaseBackend.php, line 189

Class

DatabaseBackend
Defines a default cache implementation.

Namespace

Drupal\Core\Cache

Code

public function setMultiple(array $items) {
    $try_again = FALSE;
    try {
        // The bin might not yet exist.
        $this->doSetMultiple($items);
    } 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->doSetMultiple($items);
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.