Nette\Caching\Storages\NewMemcachedStorage::bulkRead PHP Method

bulkRead() public method

Reads from cache in bulk.
public bulkRead ( array $keys ) : array
$keys array
return array key => value pairs, missing items are omitted
    public function bulkRead(array $keys)
    {
        $prefixedKeys = array_map(function ($key) {
            return urlencode($this->prefix . $key);
        }, $keys);
        $keys = array_combine($prefixedKeys, $keys);
        $metas = $this->memcached->getMulti($prefixedKeys);
        $result = [];
        $deleteKeys = [];
        foreach ($metas as $prefixedKey => $meta) {
            if (!empty($meta[self::META_CALLBACKS]) && !Cache::checkCallbacks($meta[self::META_CALLBACKS])) {
                $deleteKeys[] = $prefixedKey;
            } else {
                $result[$keys[$prefixedKey]] = $meta[self::META_DATA];
            }
            if (!empty($meta[self::META_DELTA])) {
                $this->memcached->replace($prefixedKey, $meta, $meta[self::META_DELTA] + time());
            }
        }
        if (!empty($deleteKeys)) {
            $this->memcached->deleteMulti($deleteKeys, 0);
        }
        return $result;
    }