From 284d363fb1b2a220563a27503163fba6e8c3d801 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Fri, 13 Jan 2017 08:33:21 +0100 Subject: [PATCH] [Cache] Relax binary-constraint on Memcached connections --- .../Component/Cache/Adapter/MemcachedAdapter.php | 5 +---- .../Cache/Tests/Adapter/MemcachedAdapterTest.php | 15 ++++----------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/src/Symfony/Component/Cache/Adapter/MemcachedAdapter.php b/src/Symfony/Component/Cache/Adapter/MemcachedAdapter.php index 788e21ca5d..46b523f726 100644 --- a/src/Symfony/Component/Cache/Adapter/MemcachedAdapter.php +++ b/src/Symfony/Component/Cache/Adapter/MemcachedAdapter.php @@ -44,9 +44,6 @@ class MemcachedAdapter extends AbstractAdapter if (\Memcached::SERIALIZER_PHP !== $opt && \Memcached::SERIALIZER_IGBINARY !== $opt) { throw new CacheException('MemcachedAdapter: "serializer" option must be "php" or "igbinary".'); } - if (!$client->getOption(\Memcached::OPT_BINARY_PROTOCOL)) { - throw new CacheException('MemcachedAdapter: "binary_protocol" option must be enabled.'); - } $this->maxIdLength -= strlen($client->getOption(\Memcached::OPT_PREFIX_KEY)); parent::__construct($namespace, $defaultLifetime); @@ -67,7 +64,7 @@ class MemcachedAdapter extends AbstractAdapter * * @return \Memcached * - * @throws \ErrorEception When invalid options or servers are provided. + * @throws \ErrorEception When invalid options or servers are provided */ public static function createConnection($servers, array $options = array()) { diff --git a/src/Symfony/Component/Cache/Tests/Adapter/MemcachedAdapterTest.php b/src/Symfony/Component/Cache/Tests/Adapter/MemcachedAdapterTest.php index 7a766e073f..6567740d68 100644 --- a/src/Symfony/Component/Cache/Tests/Adapter/MemcachedAdapterTest.php +++ b/src/Symfony/Component/Cache/Tests/Adapter/MemcachedAdapterTest.php @@ -29,7 +29,7 @@ class MemcachedAdapterTest extends AdapterTestCase if (!MemcachedAdapter::isSupported()) { self::markTestSkipped('Extension memcached >=2.2.0 required.'); } - self::$client = AbstractAdapter::createConnection('memcached://'.getenv('MEMCACHED_HOST')); + self::$client = AbstractAdapter::createConnection('memcached://'.getenv('MEMCACHED_HOST'), array('binary_protocol' => false)); self::$client->get('foo'); $code = self::$client->getResultCode(); @@ -40,7 +40,9 @@ class MemcachedAdapterTest extends AdapterTestCase public function createCachePool($defaultLifetime = 0) { - return new MemcachedAdapter(self::$client, str_replace('\\', '.', __CLASS__), $defaultLifetime); + $client = $defaultLifetime ? AbstractAdapter::createConnection('memcached://'.getenv('MEMCACHED_HOST')) : self::$client; + + return new MemcachedAdapter($client, str_replace('\\', '.', __CLASS__), $defaultLifetime); } public function testOptions() @@ -80,15 +82,6 @@ class MemcachedAdapterTest extends AdapterTestCase ); } - /** - * @expectedException \Symfony\Component\Cache\Exception\CacheException - * @expectedExceptionMessage MemcachedAdapter: "binary_protocol" option must be enabled. - */ - public function testBinaryProtocol() - { - new MemcachedAdapter(MemcachedAdapter::createConnection(array(), array('binary_protocol' => false))); - } - public function testDefaultOptions() { $this->assertTrue(MemcachedAdapter::isSupported());