options = array( 'host' => '127.0.0.1', 'port' => 11211, 'extras' => array( 'timeout' => 3600, // one hour 'prefix' => 'simplepie_', ), ); $this->options = array_merge_recursive($this->options, SimplePie_Cache::parse_URL($url)); $this->name = $this->options['extras']['prefix'] . md5("$filename:$extension"); $this->cache = new Memcache(); $this->cache->addServer($this->options['host'], (int) $this->options['port']); } public function save($data) { if (is_a($data, 'SimplePie')) { $data = $data->data; } return $this->cache->set($this->name, serialize($data), MEMCACHE_COMPRESSED, (int) $this->options['extras']['timeout']); } public function load() { $data = $this->cache->get($this->name); if ($data !== false) { return unserialize($data); } return false; } public function mtime() { $data = $this->cache->get($this->name); if ($data !== false) { // essentially ignore the mtime because Memcache expires on it's own return time(); } return false; } public function touch() { $data = $this->cache->get($this->name); if ($data !== false) { return $this->cache->set($this->name, $data, MEMCACHE_COMPRESSED, (int) $this->duration); } return false; } public function unlink() { return $this->cache->delete($this->name); } }