<?php
class Cache
{
	static private $self = FALSE;
	
	static private $cache = NULL;
	
	private final function __construct ()
	{
		$back = new Zend_Cache_Backend_Memcached (array (
			'servers' => array (array ('host' => '127.0.0.1', 'port' => '11211')), 
			'compression' => TRUE));
		
		$log =  new Zend_Log ();
		
		$log->addWriter (new Zend_Log_Writer_Stream (Instance::singleton ()->getCachePath () .'memcache.log', 'a+'));
		
		$front = new Zend_Cache_Core (array (
			'caching' => TRUE,
			'cache_id_prefix' => Instance::singleton ()->getSession (),
			'logging' => TRUE,
			'logger'  => $log,
			'write_control' => TRUE,
			'automatic_serialization' => TRUE,
			'ignore_user_abort' => TRUE));
		
		self::$cache = Zend_Cache::factory ($front, $back);
	}
	
	static public function singleton ()
	{
		if (self::$self !== FALSE)
			return self::$self;
		
		$class = __CLASS__;
		
		self::$self = new $class ();
		
		return self::$self;
	}
	
	static public function isCached ($id)
	{
		self::singleton ();
		
		if (self::$cache === FALSE)
			return FALSE;
		
		return self::$cache->test ($id);
	}
}
?>