backend = new Memcache; $this->flags = Kohana::config('cache_memcache.compression') ? MEMCACHE_COMPRESSED : 0; $servers = Kohana::config('cache_memcache.servers'); foreach ($servers as $server) { // Make sure all required keys are set $server += array('host' => '127.0.0.1', 'port' => 11211, 'persistent' => FALSE); // Add the server to the pool $this->backend->addServer($server['host'], $server['port'], (bool) $server['persistent']) or Kohana::log('error', 'Cache: Connection failed: '.$server['host']); } } public function find($tag) { return FALSE; } public function get($id) { return (($return = $this->backend->get($id)) === FALSE) ? NULL : $return; } public function set($id, $data, $tags, $lifetime) { count($tags) and Kohana::log('error', 'Cache: Tags are unsupported by the memcache driver'); // Memcache driver expects unix timestamp if ($lifetime !== 0) { $lifetime += time(); } return $this->backend->set($id, $data, $this->flags, $lifetime); } public function delete($id, $tag = FALSE) { if ($id === TRUE) return $this->backend->flush(); if ($tag == FALSE) return $this->backend->delete($id); return TRUE; } public function delete_expired() { return TRUE; } } // End Cache Memcache Driver