| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | <?php namespace System;class Memcached {	/**	 * The Memcache instance.	 *	 * @var Memcache	 */	private static $instance = null;	/**	 * Get the singleton Memcache instance.	 *	 * @return Memcache	 */	public static function instance()	{		if (is_null(static::$instance))		{			static::$instance = static::connect(Config::get('cache.servers'));		}		return static::$instance;	}	/**	 * Connect to the configured Memcached servers.	 *	 * @param  array     $servers	 * @return Memcache	 */	private static function connect($servers)	{		if ( ! class_exists('Memcache'))		{			throw new \Exception('Attempting to use Memcached, but the Memcached PHP extension is not installed on this server.');		}		$memcache = new \Memcache;		foreach ($servers as $server)		{			$memcache->addServer($server['host'], $server['port'], true, $server['weight']);		}		if ($memcache->getVersion() === false)		{			throw new \Exception('Memcached is configured. However, no connections could be made. Please verify your memcached configuration.');		}		return $memcache;	}}
 |