X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FCache%2FMemcachedCacheDriver.php;h=9e9c00f0b89f25f9ffbc943ccce6aa7f4673dec2;hb=5881fa7229a25efd382668e6cd4a3af0f8d3198c;hp=870219854ab4e7b858e05f9d70c51a40b6e429ef;hpb=26723623f4e4832f7a32677d81ad17bfeda66032;p=friendica.git diff --git a/src/Core/Cache/MemcachedCacheDriver.php b/src/Core/Cache/MemcachedCacheDriver.php index 870219854a..9e9c00f0b8 100644 --- a/src/Core/Cache/MemcachedCacheDriver.php +++ b/src/Core/Cache/MemcachedCacheDriver.php @@ -10,7 +10,7 @@ use Memcached; /** * Memcached Cache Driver * - * @author Hypolite Petovan + * @author Hypolite Petovan */ class MemcachedCacheDriver extends AbstractCacheDriver implements IMemoryCacheDriver { @@ -22,6 +22,16 @@ class MemcachedCacheDriver extends AbstractCacheDriver implements IMemoryCacheDr */ private $memcached; + /** + * Due to limitations of the INI format, the expected configuration for Memcached servers is the following: + * array { + * 0 => "hostname, port(, weight)", + * 1 => ... + * } + * + * @param array $memcached_hosts + * @throws \Exception + */ public function __construct(array $memcached_hosts) { if (!class_exists('Memcached', false)) { @@ -30,6 +40,12 @@ class MemcachedCacheDriver extends AbstractCacheDriver implements IMemoryCacheDr $this->memcached = new Memcached(); + array_walk($memcached_hosts, function (&$value) { + if (is_string($value)) { + $value = array_map('trim', explode(',', $value)); + } + }); + $this->memcached->addServers($memcached_hosts); if (count($this->memcached->getServerList()) == 0) {