diff options
| author | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-09-22 17:01:17 +0000 | 
|---|---|---|
| committer | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-09-22 17:01:17 +0000 | 
| commit | 965cbe52f22809f19ca150feb585b0218aa89f85 (patch) | |
| tree | fc1b59b44c5ecbaedf27cc8c71e7abc80a15305e /engine/classes/ElggMemcache.php | |
| parent | 56b3e3dcd833a8a9124581b536c69806962b9640 (diff) | |
| download | elgg-965cbe52f22809f19ca150feb585b0218aa89f85.tar.gz elgg-965cbe52f22809f19ca150feb585b0218aa89f85.tar.bz2 | |
Converted line endings to unix.
git-svn-id: http://code.elgg.org/elgg/trunk@6957 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine/classes/ElggMemcache.php')
| -rw-r--r-- | engine/classes/ElggMemcache.php | 302 | 
1 files changed, 151 insertions, 151 deletions
| diff --git a/engine/classes/ElggMemcache.php b/engine/classes/ElggMemcache.php index 5e898c26a..9f12fb73b 100644 --- a/engine/classes/ElggMemcache.php +++ b/engine/classes/ElggMemcache.php @@ -1,151 +1,151 @@ -<?php
 -/**
 - * Memcache wrapper class.
 - * @author Curverider Ltd <info@elgg.com>
 - */
 -class ElggMemcache extends ElggSharedMemoryCache {
 -	/**
 -	 * Minimum version of memcached needed to run
 -	 *
 -	 */
 -	private static $MINSERVERVERSION = '1.1.12';
 -
 -	/**
 -	 * Memcache object
 -	 */
 -	private $memcache;
 -
 -	/**
 -	 * Expiry of saved items (default timeout after a day to prevent anything getting too stale)
 -	 */
 -	private $expires = 86400;
 -
 -	/**
 -	 * The version of memcache running
 -	 */
 -	private $version = 0;
 -
 -	/**
 -	 * Connect to memcache.
 -	 *
 -	 * @param string $cache_id The namespace for this cache to write to - note, namespaces of the same name are shared!
 -	 */
 -	function __construct($namespace = 'default') {
 -		global $CONFIG;
 -
 -		$this->setNamespace($namespace);
 -
 -		// Do we have memcache?
 -		if (!class_exists('Memcache')) {
 -			throw new ConfigurationException(elgg_echo('memcache:notinstalled'));
 -		}
 -
 -		// Create memcache object
 -		$this->memcache	= new Memcache;
 -
 -		// Now add servers
 -		if (!$CONFIG->memcache_servers) {
 -			throw new ConfigurationException(elgg_echo('memcache:noservers'));
 -		}
 -
 -		if (is_callable($this->memcache, 'addServer')) {
 -			foreach ($CONFIG->memcache_servers as $server) {
 -				if (is_array($server)) {
 -					$this->memcache->addServer(
 -						$server[0],
 -						isset($server[1]) ? $server[1] : 11211,
 -						isset($server[2]) ? $server[2] : true,
 -						isset($server[3]) ? $server[3] : null,
 -						isset($server[4]) ? $server[4] : 1,
 -						isset($server[5]) ? $server[5] : 15,
 -						isset($server[6]) ? $server[6] : true
 -					);
 -
 -				} else {
 -					$this->memcache->addServer($server, 11211);
 -				}
 -			}
 -		} else {
 -			elgg_log(elgg_echo('memcache:noaddserver'), 'ERROR');
 -
 -			$server = $CONFIG->memcache_servers[0];
 -			if (is_array($server)) {
 -				$this->memcache->connect($server[0], $server[1]);
 -			} else {
 -				$this->memcache->addServer($server, 11211);
 -			}
 -		}
 -
 -		// Get version
 -		$this->version = $this->memcache->getversion();
 -		if (version_compare($this->version, ElggMemcache::$MINSERVERVERSION, '<')) {
 -			throw new ConfigurationException(sprintf(elgg_echo('memcache:versiontoolow'), ElggMemcache::$MINSERVERVERSION, $this->version));
 -		}
 -
 -		// Set some defaults
 -		if (isset($CONFIG->memcache_expires)) {
 -			$this->expires = $CONFIG->memcache_expires;
 -		}
 -	}
 -
 -	/**
 -	 * Set the default expiry.
 -	 *
 -	 * @param int $expires The lifetime as a unix timestamp or time from now. Defaults forever.
 -	 */
 -	public function setDefaultExpiry($expires = 0) {
 -		$this->expires = $expires;
 -	}
 -
 -	/**
 -	 * Combine a key with the namespace.
 -	 * Memcache can only accept <250 char key. If the given key is too long it is shortened.
 -	 *
 -	 * @param string $key The key
 -	 * @return string The new key.
 -	 */
 -	private function make_memcache_key($key) {
 -		$prefix = $this->getNamespace() . ":";
 -
 -		if (strlen($prefix.$key)> 250) {
 -			$key = md5($key);
 -		}
 -
 -		return $prefix.$key;
 -	}
 -
 -	public function save($key, $data) {
 -		$key = $this->make_memcache_key($key);
 -
 -		$result = $this->memcache->set($key, $data, null, $this->expires);
 -		if (!$result) {
 -			elgg_log("MEMCACHE: FAILED TO SAVE $key", 'ERROR');
 -		}
 -
 -		return $result;
 -	}
 -
 -	public function load($key, $offset = 0, $limit = null) {
 -		$key = $this->make_memcache_key($key);
 -
 -		$result = $this->memcache->get($key);
 -		if (!$result) {
 -			elgg_log("MEMCACHE: FAILED TO LOAD $key", 'ERROR');
 -		}
 -
 -		return $result;
 -	}
 -
 -	public function delete($key) {
 -		$key = $this->make_memcache_key($key);
 -
 -		return $this->memcache->delete($key, 0);
 -	}
 -
 -	public function clear() {
 -		// DISABLE clearing for now - you must use delete on a specific key.
 -		return true;
 -
 -		// @todo Namespaces as in #532
 -	}
 -}
 +<?php +/** + * Memcache wrapper class. + * @author Curverider Ltd <info@elgg.com> + */ +class ElggMemcache extends ElggSharedMemoryCache { +	/** +	 * Minimum version of memcached needed to run +	 * +	 */ +	private static $MINSERVERVERSION = '1.1.12'; + +	/** +	 * Memcache object +	 */ +	private $memcache; + +	/** +	 * Expiry of saved items (default timeout after a day to prevent anything getting too stale) +	 */ +	private $expires = 86400; + +	/** +	 * The version of memcache running +	 */ +	private $version = 0; + +	/** +	 * Connect to memcache. +	 * +	 * @param string $cache_id The namespace for this cache to write to - note, namespaces of the same name are shared! +	 */ +	function __construct($namespace = 'default') { +		global $CONFIG; + +		$this->setNamespace($namespace); + +		// Do we have memcache? +		if (!class_exists('Memcache')) { +			throw new ConfigurationException(elgg_echo('memcache:notinstalled')); +		} + +		// Create memcache object +		$this->memcache	= new Memcache; + +		// Now add servers +		if (!$CONFIG->memcache_servers) { +			throw new ConfigurationException(elgg_echo('memcache:noservers')); +		} + +		if (is_callable($this->memcache, 'addServer')) { +			foreach ($CONFIG->memcache_servers as $server) { +				if (is_array($server)) { +					$this->memcache->addServer( +						$server[0], +						isset($server[1]) ? $server[1] : 11211, +						isset($server[2]) ? $server[2] : true, +						isset($server[3]) ? $server[3] : null, +						isset($server[4]) ? $server[4] : 1, +						isset($server[5]) ? $server[5] : 15, +						isset($server[6]) ? $server[6] : true +					); + +				} else { +					$this->memcache->addServer($server, 11211); +				} +			} +		} else { +			elgg_log(elgg_echo('memcache:noaddserver'), 'ERROR'); + +			$server = $CONFIG->memcache_servers[0]; +			if (is_array($server)) { +				$this->memcache->connect($server[0], $server[1]); +			} else { +				$this->memcache->addServer($server, 11211); +			} +		} + +		// Get version +		$this->version = $this->memcache->getversion(); +		if (version_compare($this->version, ElggMemcache::$MINSERVERVERSION, '<')) { +			throw new ConfigurationException(sprintf(elgg_echo('memcache:versiontoolow'), ElggMemcache::$MINSERVERVERSION, $this->version)); +		} + +		// Set some defaults +		if (isset($CONFIG->memcache_expires)) { +			$this->expires = $CONFIG->memcache_expires; +		} +	} + +	/** +	 * Set the default expiry. +	 * +	 * @param int $expires The lifetime as a unix timestamp or time from now. Defaults forever. +	 */ +	public function setDefaultExpiry($expires = 0) { +		$this->expires = $expires; +	} + +	/** +	 * Combine a key with the namespace. +	 * Memcache can only accept <250 char key. If the given key is too long it is shortened. +	 * +	 * @param string $key The key +	 * @return string The new key. +	 */ +	private function make_memcache_key($key) { +		$prefix = $this->getNamespace() . ":"; + +		if (strlen($prefix.$key)> 250) { +			$key = md5($key); +		} + +		return $prefix.$key; +	} + +	public function save($key, $data) { +		$key = $this->make_memcache_key($key); + +		$result = $this->memcache->set($key, $data, null, $this->expires); +		if (!$result) { +			elgg_log("MEMCACHE: FAILED TO SAVE $key", 'ERROR'); +		} + +		return $result; +	} + +	public function load($key, $offset = 0, $limit = null) { +		$key = $this->make_memcache_key($key); + +		$result = $this->memcache->get($key); +		if (!$result) { +			elgg_log("MEMCACHE: FAILED TO LOAD $key", 'ERROR'); +		} + +		return $result; +	} + +	public function delete($key) { +		$key = $this->make_memcache_key($key); + +		return $this->memcache->delete($key, 0); +	} + +	public function clear() { +		// DISABLE clearing for now - you must use delete on a specific key. +		return true; + +		// @todo Namespaces as in #532 +	} +} | 
