diff options
| author | Marc Alexander <admin@m-a-styles.de> | 2019-11-25 21:27:43 +0100 | 
|---|---|---|
| committer | Marc Alexander <admin@m-a-styles.de> | 2019-11-25 21:27:43 +0100 | 
| commit | c7d47e34e82128399e1b20b9f80a85f46c4cfd75 (patch) | |
| tree | b37156468a2218fc2c832b8ca4739d0f3a66f84c /phpBB/phpbb/cache/driver/memcached.php | |
| parent | fd7524858c9c178603cc3bb7440bcbad58c9096a (diff) | |
| download | forums-c7d47e34e82128399e1b20b9f80a85f46c4cfd75.tar forums-c7d47e34e82128399e1b20b9f80a85f46c4cfd75.tar.gz forums-c7d47e34e82128399e1b20b9f80a85f46c4cfd75.tar.bz2 forums-c7d47e34e82128399e1b20b9f80a85f46c4cfd75.tar.xz forums-c7d47e34e82128399e1b20b9f80a85f46c4cfd75.zip | |
[ticket/16223] Ensure memcached tests are only run when available
PHPBB3-16223
Diffstat (limited to 'phpBB/phpbb/cache/driver/memcached.php')
| -rw-r--r-- | phpBB/phpbb/cache/driver/memcached.php | 25 | 
1 files changed, 22 insertions, 3 deletions
| diff --git a/phpBB/phpbb/cache/driver/memcached.php b/phpBB/phpbb/cache/driver/memcached.php index 7d66759ec2..bb725adefd 100644 --- a/phpBB/phpbb/cache/driver/memcached.php +++ b/phpBB/phpbb/cache/driver/memcached.php @@ -56,6 +56,15 @@ class memcached extends \phpbb\cache\driver\memory  		// Call the parent constructor  		parent::__construct(); +		$memcached_servers = PHPBB_ACM_MEMCACHED; + +		// Allow overwriting PHPBB_ACM_MEMCACHED via constructor arguments +		$args = func_get_args(); +		if (count($args) >= 2) +		{ +			$memcached_servers = $args[0] . '/' . $args[1]; +		} +  		$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 +74,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).');  		}  	} | 
