Location: PHPKode > scripts > MEM > mem/mem.class.php
<?php
/**
 * mem.class.php -- Class used to access memcache server as array.
 *
 * Written by roast (roast_AT_php_DOT_net).
 * Feel free to email me with questions/bugs. If you find this useful, would be great to hear from you.
 *
 * version 1.0 -
 *
 * Changes:
 *	- First release.
 *
 * Example:
 *	  
 *	  include("mem.class.php");
 * 
 *	  //global variable $_MEM 
 * 
 *	  $_MEM['dd'] = "roast";  //memcache::set
 *	  unset($_MEM['dd']);     //memcache::delete
 * 
 *	  var_dump($_MEM['dd']);
 *
 * Notes:
 *  - Protect keys of memcache: _host/_port/_compress/_expire.
 *  - PHP version 5.0+
 */ 

class _MEM implements ArrayAccess    
{     
	private $_data = array(); 
	
	private $_handler = false;
		
	public  $_host;
	
	public  $_port = 11211;
	
	public  $_compress = false;
	
	public  $_expire = 30;  
	
	
	public function __construct($host,$port = 11211)
	{
		$this->_host = $host;
		$this->_port = $port;
		$this->_handler = new Memcache;
		
		if (!$this->_handler->connect($host,$port))
			$this->_handler = false;
	}   
		 
	public function offsetExists($offset) {}   
		 
	public function offsetUnset($offset)
	{
		$this->_handler->delete($offset);
		unset($this->_data[$offset]);
	} 
				   
	public function offsetGet($offset)         
	{ 
		if (!$this->_handler)  
			return false;
					echo 'get';
		if (isset($this->_data[$offset]))     
			return $this->_data[$offset];
		else
			return $this->_handler->get($offset);
	} 
			   
	public function offsetSet($offset, $value)         
	{        
		if (!$this->_handler)  
			return false;

		switch ($offset)
		{
			case '_host':       $this->_host = $value;  break;
			case '_port':       $this->_port = $value;  break;
			case '_expire':     $this->_expire = $value;break;
			case '_compress':   $this->_host = $value;  break;
			default:
				if (empty($value) && $value != '0')
					$this->_handler->delete($offset);
				else
					$this->_handler->set($offset,$value,$this->_compress,$this->_expire);			
		}
		 $this->_data[$offest] = $value;       
	}
}
$_MEM = new _MEM('10.210.71.51');
?>
Return current item: MEM