function DatabaseBackend::setMultiple

Same name and namespace in other branches
  1. 11.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. 9 core/lib/Drupal/Core/Cache/DatabaseBackend.php \Drupal\Core\Cache\DatabaseBackend::setMultiple()
  4. 8.9.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 = [
  $cid => [
    // 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' => [],
  ],
];

Overrides CacheBackendInterface::setMultiple

1 call to DatabaseBackend::setMultiple()
DatabaseBackend::set in core/lib/Drupal/Core/Cache/DatabaseBackend.php

File

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

Class

DatabaseBackend
Defines a default cache implementation.

Namespace

Drupal\Core\Cache

Code

public function setMultiple(array $items) {
  try {
    // The bin table can be missing.
    $this->doSetMultiple($items);
  } catch (\Exception) {
    // If the query fails, make the bin table and do the query again. It is
    // possible that another process made the table after the query failed.
    // If the query fails for a different cause, it fails again and the
    // exception goes to the caller.
    $this->ensureBinExists();
    $this->doSetMultiple($items);
  }
}

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