$cids =
[$cid];
$cache =
$this->
getMultiple($cids,
$allow_invalid);
return reset($cache);
} /**
* {@inheritdoc}
*/
public function getMultiple(&
$cids,
$allow_invalid = FALSE
) { $cid_mapping =
[];
foreach ($cids as $cid) { $cid_mapping[$this->
normalizeCid($cid)] =
$cid;
} // When serving cached pages, the overhead of using ::select() was found
// to add around 30% overhead to the request. Since $this->bin is a
// variable, this means the call to ::query() here uses a concatenated
// string. This is highly discouraged under any other circumstances, and
// is used here only due to the performance overhead we would incur
// otherwise. When serving an uncached page, the overhead of using
// ::select() is a much smaller proportion of the request.
$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)]);
}