Esempio n. 1
0
 /**
  * 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);
 }
Esempio n. 2
0
 /**
  * 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);
     }
 }