protected function CacheCollector::normalizeLockName

protected CacheCollector::normalizeLockName($cid)

Normalizes a cache ID in order to comply with database limitations.

Parameters

string $cid: The passed in cache ID.

Return value

string An ASCII-encoded cache ID that is at most 255 characters long.

File

core/lib/Drupal/Core/Cache/CacheCollector.php, line 272

Class

CacheCollector
Default implementation for CacheCollectorInterface.

Namespace

Drupal\Core\Cache

Code

protected function normalizeLockName($cid) {
  // Nothing to do if the ID is a US ASCII string of 255 characters or less.
  $cid_is_ascii = mb_check_encoding($cid, 'ASCII');
  if (strlen($cid) <= 255 && $cid_is_ascii) {
    return $cid;
  }
  // Return a string that uses as much as possible of the original cache ID
  // with the hash appended.
  $hash = Crypt::hashBase64($cid);
  if (!$cid_is_ascii) {
    return $hash;
  }
  return substr($cid, 0, 255 - strlen($hash)) . $hash;
}

© 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!CacheCollector.php/function/CacheCollector::normalizeLockName/8.1.x