public function DatabaseBackend::getMultiple in Drupal 10
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Cache/DatabaseBackend.php \Drupal\Core\Cache\DatabaseBackend::getMultiple()
- 9 core/lib/Drupal/Core/Cache/DatabaseBackend.php \Drupal\Core\Cache\DatabaseBackend::getMultiple()
File
- core/lib/Drupal/Core/Cache/DatabaseBackend.php, line 99
Class
- DatabaseBackend
- Defines a default cache implementation.
Namespace
Drupal\Core\Cache
Code
public function getMultiple(&$cids, $allow_invalid = FALSE) {
$cid_mapping = [];
foreach ($cids as $cid) {
$cid_mapping[$this
->normalizeCid($cid)] = $cid;
}
$result = [];
try {
$result = $this->connection
->query('SELECT [cid], [data], [created], [expire], [serialized], [tags], [checksum] FROM {' . $this->connection
->escapeTable($this->bin) . '} WHERE [cid] IN ( :cids[] ) ORDER BY [cid]', [
':cids[]' => array_keys($cid_mapping),
]);
} catch (\Exception $e) {
}
$cache = [];
foreach ($result as $item) {
$item->cid = $cid_mapping[$item->cid];
$item = $this
->prepareItem($item, $allow_invalid);
if ($item) {
$cache[$item->cid] = $item;
}
}
$cids = array_diff($cids, array_keys($cache));
return $cache;
}