public function clear(string
$prefix = ''
): bool
{ $this->deferred =
[];
if ($cleared =
$this->versioningIsEnabled
) { if ('' ===
$namespaceVersionToClear =
$this->namespaceVersion
) { foreach ($this->
doFetch([static::NS_SEPARATOR.
$this->namespace
]) as $v) { $namespaceVersionToClear =
$v;
} } $namespaceToClear =
$this->namespace.
$namespaceVersionToClear;
$namespaceVersion = self::
formatNamespaceVersion(mt_rand());
try { $e =
$this->
doSave([static::NS_SEPARATOR.
$this->namespace =>
$namespaceVersion], 0
);
} catch (\Exception
$e) { } if (true !==
$e &&
[] !==
$e) { $cleared = false;
$message = 'Failed to save the new namespace'.
($e instanceof \Exception ? ': '.
$e->
getMessage() : '.'
);
CacheItem::
log($this->logger,
$message,
['exception' =>
$e instanceof \Exception ?
$e : null, 'cache-adapter' =>
get_debug_type($this)]);
} else { $this->namespaceVersion =
$namespaceVersion;
$this->ids =
[];
}