public function DatabaseBackend::deleteMultiple

public DatabaseBackend::deleteMultiple(array $cids)

Deletes multiple items from the cache.

If the cache items are being deleted because they are no longer "fresh", you may consider using invalidateMultiple() instead. This allows callers to retrieve the invalid items by calling get() with $allow_invalid set to TRUE. In some cases an invalid item may be acceptable rather than having to rebuild the cache.

Parameters

array $cids: An array of cache IDs to delete.

Overrides CacheBackendInterface::deleteMultiple

See also

\Drupal\Core\Cache\CacheBackendInterface::invalidateMultiple()

\Drupal\Core\Cache\CacheBackendInterface::delete()

\Drupal\Core\Cache\CacheBackendInterface::deleteAll()

File

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

Class

DatabaseBackend
Defines a default cache implementation.

Namespace

Drupal\Core\Cache

Code

public function deleteMultiple(array $cids) {
  $cids = array_values(array_map(array($this, 'normalizeCid'), $cids));
  try {
    // Delete in chunks when a large array is passed.
    foreach (array_chunk($cids, 1000) as $cids_chunk) {
      $this->connection->delete($this->bin)
        ->condition('cid', $cids_chunk, 'IN')
        ->execute();
    }
  }
  catch (\Exception $e) {
    // Create the cache table, which will be empty. This fixes cases during
    // core install where a cache table is cleared before it is set
    // with {cache_render} and {cache_data}.
    if (!$this->ensureBinExists()) {
      $this->catchException($e);
    }
  }
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Cache!DatabaseBackend.php/function/DatabaseBackend::deleteMultiple/8.1.x