From c7d47e34e82128399e1b20b9f80a85f46c4cfd75 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Mon, 25 Nov 2019 21:27:43 +0100 Subject: [ticket/16223] Ensure memcached tests are only run when available PHPBB3-16223 --- phpBB/phpbb/cache/driver/memcached.php | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'phpBB/phpbb/cache/driver/memcached.php') 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).'); } } -- cgit v1.2.1 From 380b7d0a98f81d241208034bb76b1468485ea996 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Mon, 25 Nov 2019 22:16:41 +0100 Subject: [ticket/16223] Use constructor arguments instead of func_get_args() PHPBB3-16223 --- phpBB/phpbb/cache/driver/memcached.php | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'phpBB/phpbb/cache/driver/memcached.php') diff --git a/phpBB/phpbb/cache/driver/memcached.php b/phpBB/phpbb/cache/driver/memcached.php index bb725adefd..fbb587a369 100644 --- a/phpBB/phpbb/cache/driver/memcached.php +++ b/phpBB/phpbb/cache/driver/memcached.php @@ -50,20 +50,15 @@ 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 = 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]; - } + $memcached_servers = $memcached_servers ?: PHPBB_ACM_MEMCACHED; $this->memcached = new \Memcached(); $this->memcached->setOption(\Memcached::OPT_BINARY_PROTOCOL, true); -- cgit v1.2.1