From 3ee02a0cac11a9502bc0c1532eda88ca68564601 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Fri, 9 Sep 2016 14:04:14 +0200 Subject: [PATCH] [Cache] Add persistent_id option to RedisAdapter::createConnection() --- src/Symfony/Component/Cache/Adapter/RedisAdapter.php | 5 +++-- .../Component/Cache/Tests/Adapter/PredisAdapterTest.php | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Cache/Adapter/RedisAdapter.php b/src/Symfony/Component/Cache/Adapter/RedisAdapter.php index 46c680afcc0c4..790b098e2f180 100644 --- a/src/Symfony/Component/Cache/Adapter/RedisAdapter.php +++ b/src/Symfony/Component/Cache/Adapter/RedisAdapter.php @@ -25,6 +25,7 @@ class RedisAdapter extends AbstractAdapter private static $defaultConnectionOptions = array( 'class' => null, 'persistent' => 0, + 'persistent_id' => null, 'timeout' => 0, 'read_timeout' => 0, 'retry_interval' => 0, @@ -99,9 +100,9 @@ public static function createConnection($dsn, array $options = array()) $class = null === $params['class'] ? (extension_loaded('redis') ? \Redis::class : \Predis\Client::class) : $params['class']; if (is_a($class, \Redis::class, true)) { - $connect = empty($params['persistent']) ? 'connect' : 'pconnect'; + $connect = $params['persistent'] || $params['persistent_id'] ? 'pconnect' : 'connect'; $redis = new $class(); - @$redis->{$connect}($params['host'], $params['port'], $params['timeout'], null, $params['retry_interval']); + @$redis->{$connect}($params['host'], $params['port'], $params['timeout'], $params['persistent_id'], $params['retry_interval']); if (@!$redis->isConnected()) { $e = ($e = error_get_last()) && preg_match('/^Redis::p?connect\(\): (.*)/', $e['message'], $e) ? sprintf(' (%s)', $e[1]) : ''; diff --git a/src/Symfony/Component/Cache/Tests/Adapter/PredisAdapterTest.php b/src/Symfony/Component/Cache/Tests/Adapter/PredisAdapterTest.php index 87a6db0736e0a..7aaee9ed5dde5 100644 --- a/src/Symfony/Component/Cache/Tests/Adapter/PredisAdapterTest.php +++ b/src/Symfony/Component/Cache/Tests/Adapter/PredisAdapterTest.php @@ -39,6 +39,7 @@ public function testCreateConnection() 'class' => 'Predis\Client', 'timeout' => 3, 'persistent' => 0, + 'persistent_id' => null, 'read_timeout' => 0, 'retry_interval' => 0, 'database' => '1',