/** * Parses the key turning it into a string (or array is required) suitable to be passed to the cache store. * * @param string|int $key As passed to get|set|delete etc. * @return string|array String unless the store supports multi-identifiers in which case an array if returned. */ protected function parse_key($key) { // First up if the store supports multiple keys we'll go with that. if ($this->store->supports_multiple_identifiers()) { $result = $this->definition->generate_multi_key_parts(); $result['key'] = $key; return $result; } // If not we need to generate a hash and to for that we use the cache_helper. return cache_helper::hash_key($key, $this->definition); }
/** * Initialises the cache. * * Once this has been done the cache is all set to be used. * * @param cache_definition $definition */ public function initialise(cache_definition $definition) { $keyarray = $definition->generate_multi_key_parts(); $this->storeid = $keyarray['mode'] . '/' . $keyarray['component'] . '/' . $keyarray['area'] . '/' . $keyarray['siteidentifier']; $this->store =& self::register_store_id($this->storeid); $maxsize = $definition->get_maxsize(); $this->simpledata = $definition->uses_simple_data(); if ($maxsize !== null) { // Must be a positive int. $this->maxsize = abs((int) $maxsize); $this->storecount = count($this->store); } }