diff options
Diffstat (limited to 'phpBB/phpbb/cache')
| -rw-r--r-- | phpBB/phpbb/cache/driver/apc.php | 70 | ||||
| -rw-r--r-- | phpBB/phpbb/cache/driver/eaccelerator.php | 107 | ||||
| -rw-r--r-- | phpBB/phpbb/cache/driver/memcache.php | 122 | ||||
| -rw-r--r-- | phpBB/phpbb/cache/driver/memcached.php | 22 | ||||
| -rw-r--r-- | phpBB/phpbb/cache/driver/memory.php | 2 | ||||
| -rw-r--r-- | phpBB/phpbb/cache/driver/xcache.php | 107 | 
6 files changed, 19 insertions, 411 deletions
| diff --git a/phpBB/phpbb/cache/driver/apc.php b/phpBB/phpbb/cache/driver/apc.php deleted file mode 100644 index 521d5d41ea..0000000000 --- a/phpBB/phpbb/cache/driver/apc.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php -/** -* -* This file is part of the phpBB Forum Software package. -* -* @copyright (c) phpBB Limited <https://www.phpbb.com> -* @license GNU General Public License, version 2 (GPL-2.0) -* -* For full copyright and license information, please see -* the docs/CREDITS.txt file. -* -*/ - -namespace phpbb\cache\driver; - -/** -* ACM for APC -*/ -class apc extends \phpbb\cache\driver\memory -{ -	var $extension = 'apc'; - -	/** -	* {@inheritDoc} -	*/ -	function purge() -	{ -		apc_clear_cache('user'); - -		parent::purge(); -	} - -	/** -	* Fetch an item from the cache -	* -	* @access protected -	* @param string $var Cache key -	* @return mixed Cached data -	*/ -	function _read($var) -	{ -		return apc_fetch($this->key_prefix . $var); -	} - -	/** -	* Store data in the cache -	* -	* @access protected -	* @param string $var Cache key -	* @param mixed $data Data to store -	* @param int $ttl Time-to-live of cached data -	* @return bool True if the operation succeeded -	*/ -	function _write($var, $data, $ttl = 2592000) -	{ -		return apc_store($this->key_prefix . $var, $data, $ttl); -	} - -	/** -	* Remove an item from the cache -	* -	* @access protected -	* @param string $var Cache key -	* @return bool True if the operation succeeded -	*/ -	function _delete($var) -	{ -		return apc_delete($this->key_prefix . $var); -	} -} diff --git a/phpBB/phpbb/cache/driver/eaccelerator.php b/phpBB/phpbb/cache/driver/eaccelerator.php deleted file mode 100644 index 740855144f..0000000000 --- a/phpBB/phpbb/cache/driver/eaccelerator.php +++ /dev/null @@ -1,107 +0,0 @@ -<?php -/** -* -* This file is part of the phpBB Forum Software package. -* -* @copyright (c) phpBB Limited <https://www.phpbb.com> -* @license GNU General Public License, version 2 (GPL-2.0) -* -* For full copyright and license information, please see -* the docs/CREDITS.txt file. -* -*/ - -namespace phpbb\cache\driver; - -/** -* ACM for eAccelerator -* @todo Missing locks from destroy() talk with David -*/ -class eaccelerator extends \phpbb\cache\driver\memory -{ -	var $extension = 'eaccelerator'; -	var $function = 'eaccelerator_get'; - -	var $serialize_header = '#phpbb-serialized#'; - -	/** -	* {@inheritDoc} -	*/ -	function purge() -	{ -		foreach (eaccelerator_list_keys() as $var) -		{ -			// @todo Check why the substr() -			// @todo Only unset vars matching $this->key_prefix -			eaccelerator_rm(substr($var['name'], 1)); -		} - -		parent::purge(); -	} - -	/** -	* {@inheritDoc} -	*/ -	function tidy() -	{ -		global $config; - -		eaccelerator_gc(); - -		$config->set('cache_last_gc', time(), false); -	} - -	/** -	* Fetch an item from the cache -	* -	* @access protected -	* @param string $var Cache key -	* @return mixed Cached data -	*/ -	function _read($var) -	{ -		$result = eaccelerator_get($this->key_prefix . $var); - -		if ($result === null) -		{ -			return false; -		} - -		// Handle serialized objects -		if (is_string($result) && strpos($result, $this->serialize_header . 'O:') === 0) -		{ -			$result = unserialize(substr($result, strlen($this->serialize_header))); -		} - -		return $result; -	} - -	/** -	* Store data in the cache -	* -	* @access protected -	* @param string $var Cache key -	* @param mixed $data Data to store -	* @param int $ttl Time-to-live of cached data -	* @return bool True if the operation succeeded -	*/ -	function _write($var, $data, $ttl = 2592000) -	{ -		// Serialize objects and make them easy to detect -		$data = (is_object($data)) ? $this->serialize_header . serialize($data) : $data; - -		return eaccelerator_put($this->key_prefix . $var, $data, $ttl); -	} - -	/** -	* Remove an item from the cache -	* -	* @access protected -	* @param string $var Cache key -	* @return bool True if the operation succeeded -	*/ -	function _delete($var) -	{ -		return eaccelerator_rm($this->key_prefix . $var); -	} -} diff --git a/phpBB/phpbb/cache/driver/memcache.php b/phpBB/phpbb/cache/driver/memcache.php deleted file mode 100644 index 57f138f574..0000000000 --- a/phpBB/phpbb/cache/driver/memcache.php +++ /dev/null @@ -1,122 +0,0 @@ -<?php -/** -* -* This file is part of the phpBB Forum Software package. -* -* @copyright (c) phpBB Limited <https://www.phpbb.com> -* @license GNU General Public License, version 2 (GPL-2.0) -* -* For full copyright and license information, please see -* the docs/CREDITS.txt file. -* -*/ - -namespace phpbb\cache\driver; - -if (!defined('PHPBB_ACM_MEMCACHE_PORT')) -{ -	define('PHPBB_ACM_MEMCACHE_PORT', 11211); -} - -if (!defined('PHPBB_ACM_MEMCACHE_COMPRESS')) -{ -	define('PHPBB_ACM_MEMCACHE_COMPRESS', false); -} - -if (!defined('PHPBB_ACM_MEMCACHE_HOST')) -{ -	define('PHPBB_ACM_MEMCACHE_HOST', 'localhost'); -} - -if (!defined('PHPBB_ACM_MEMCACHE')) -{ -	//can define multiple servers with host1/port1,host2/port2 format -	define('PHPBB_ACM_MEMCACHE', PHPBB_ACM_MEMCACHE_HOST . '/' . PHPBB_ACM_MEMCACHE_PORT); -} - -/** -* ACM for Memcached -*/ -class memcache extends \phpbb\cache\driver\memory -{ -	var $extension = 'memcache'; - -	var $memcache; -	var $flags = 0; - -	function __construct() -	{ -		// Call the parent constructor -		parent::__construct(); - -		$this->memcache = new \Memcache; -		foreach (explode(',', PHPBB_ACM_MEMCACHE) as $u) -		{ -			preg_match('#(.*)/(\d+)#', $u, $parts); -			$this->memcache->addServer(trim($parts[1]), (int) trim($parts[2])); -		} -		$this->flags = (PHPBB_ACM_MEMCACHE_COMPRESS) ? MEMCACHE_COMPRESSED : 0; -	} - -	/** -	* {@inheritDoc} -	*/ -	function unload() -	{ -		parent::unload(); - -		$this->memcache->close(); -	} - -	/** -	* {@inheritDoc} -	*/ -	function purge() -	{ -		$this->memcache->flush(); - -		parent::purge(); -	} - -	/** -	* Fetch an item from the cache -	* -	* @access protected -	* @param string $var Cache key -	* @return mixed Cached data -	*/ -	function _read($var) -	{ -		return $this->memcache->get($this->key_prefix . $var); -	} - -	/** -	* Store data in the cache -	* -	* @access protected -	* @param string $var Cache key -	* @param mixed $data Data to store -	* @param int $ttl Time-to-live of cached data -	* @return bool True if the operation succeeded -	*/ -	function _write($var, $data, $ttl = 2592000) -	{ -		if (!$this->memcache->replace($this->key_prefix . $var, $data, $this->flags, $ttl)) -		{ -			return $this->memcache->set($this->key_prefix . $var, $data, $this->flags, $ttl); -		} -		return true; -	} - -	/** -	* Remove an item from the cache -	* -	* @access protected -	* @param string $var Cache key -	* @return bool True if the operation succeeded -	*/ -	function _delete($var) -	{ -		return $this->memcache->delete($this->key_prefix . $var); -	} -} diff --git a/phpBB/phpbb/cache/driver/memcached.php b/phpBB/phpbb/cache/driver/memcached.php index 7d66759ec2..fbb587a369 100644 --- a/phpBB/phpbb/cache/driver/memcached.php +++ b/phpBB/phpbb/cache/driver/memcached.php @@ -50,12 +50,16 @@ class memcached extends \phpbb\cache\driver\memory  	/**  	 * Memcached constructor +	 * +	 * @param string $memcached_servers Memcached servers string (optional)  	 */ -	public function __construct() +	public function __construct($memcached_servers = '')  	{  		// Call the parent constructor  		parent::__construct(); +		$memcached_servers = $memcached_servers ?: PHPBB_ACM_MEMCACHED; +  		$this->memcached = new \Memcached();  		$this->memcached->setOption(\Memcached::OPT_BINARY_PROTOCOL, true);  		// Memcached defaults to using compression, disable if we don't want @@ -65,10 +69,20 @@ class memcached extends \phpbb\cache\driver\memory  			$this->memcached->setOption(\Memcached::OPT_COMPRESSION, false);  		} -		foreach (explode(',', PHPBB_ACM_MEMCACHED) as $u) +		$server_list = []; +		foreach (explode(',', $memcached_servers) as $u) +		{ +			if (preg_match('#(.*)/(\d+)#', $u, $parts)) +			{ +				$server_list[] = [trim($parts[1]), (int) trim($parts[2])]; +			} +		} + +		$this->memcached->addServers($server_list); + +		if (empty($server_list) || empty($this->memcached->getStats()))  		{ -			preg_match('#(.*)/(\d+)#', $u, $parts); -			$this->memcached->addServer(trim($parts[1]), (int) trim($parts[2])); +			trigger_error('Could not connect to memcached server(s).');  		}  	} diff --git a/phpBB/phpbb/cache/driver/memory.php b/phpBB/phpbb/cache/driver/memory.php index eba9549877..956936bf6f 100644 --- a/phpBB/phpbb/cache/driver/memory.php +++ b/phpBB/phpbb/cache/driver/memory.php @@ -25,7 +25,7 @@ abstract class memory extends \phpbb\cache\driver\base  	*/  	function __construct()  	{ -		global $phpbb_root_path, $dbname, $table_prefix, $phpbb_container; +		global $dbname, $table_prefix, $phpbb_container;  		$this->cache_dir	= $phpbb_container->getParameter('core.cache_dir');  		$this->key_prefix	= substr(md5($dbname . $table_prefix), 0, 8) . '_'; diff --git a/phpBB/phpbb/cache/driver/xcache.php b/phpBB/phpbb/cache/driver/xcache.php deleted file mode 100644 index 0c845a6a8d..0000000000 --- a/phpBB/phpbb/cache/driver/xcache.php +++ /dev/null @@ -1,107 +0,0 @@ -<?php -/** -* -* This file is part of the phpBB Forum Software package. -* -* @copyright (c) phpBB Limited <https://www.phpbb.com> -* @license GNU General Public License, version 2 (GPL-2.0) -* -* For full copyright and license information, please see -* the docs/CREDITS.txt file. -* -*/ - -namespace phpbb\cache\driver; - -/** -* ACM for XCache -* -* To use this module you need ini_get() enabled and the following INI settings configured as follows: -* - xcache.var_size > 0 -* - xcache.admin.enable_auth = off (or xcache.admin.user and xcache.admin.password set) -* -*/ -class xcache extends \phpbb\cache\driver\memory -{ -	var $extension = 'XCache'; - -	function __construct() -	{ -		parent::__construct(); - -		if (!function_exists('ini_get') || (int) ini_get('xcache.var_size') <= 0) -		{ -			trigger_error('Increase xcache.var_size setting above 0 or enable ini_get() to use this ACM module.', E_USER_ERROR); -		} -	} - -	/** -	* {@inheritDoc} -	*/ -	function purge() -	{ -		// Run before for XCache, if admin functions are disabled it will terminate execution -		parent::purge(); - -		// If the admin authentication is enabled but not set up, this will cause a nasty error. -		// Not much we can do about it though. -		$n = xcache_count(XC_TYPE_VAR); - -		for ($i = 0; $i < $n; $i++) -		{ -			xcache_clear_cache(XC_TYPE_VAR, $i); -		} -	} - -	/** -	* Fetch an item from the cache -	* -	* @access protected -	* @param string $var Cache key -	* @return mixed Cached data -	*/ -	function _read($var) -	{ -		$result = xcache_get($this->key_prefix . $var); - -		return ($result !== null) ? $result : false; -	} - -	/** -	* Store data in the cache -	* -	* @access protected -	* @param string $var Cache key -	* @param mixed $data Data to store -	* @param int $ttl Time-to-live of cached data -	* @return bool True if the operation succeeded -	*/ -	function _write($var, $data, $ttl = 2592000) -	{ -		return xcache_set($this->key_prefix . $var, $data, $ttl); -	} - -	/** -	* Remove an item from the cache -	* -	* @access protected -	* @param string $var Cache key -	* @return bool True if the operation succeeded -	*/ -	function _delete($var) -	{ -		return xcache_unset($this->key_prefix . $var); -	} - -	/** -	* Check if a cache var exists -	* -	* @access protected -	* @param string $var Cache key -	* @return bool True if it exists, otherwise false -	*/ -	function _isset($var) -	{ -		return xcache_isset($this->key_prefix . $var); -	} -} | 
