Skip to content

Commit e416abc

Browse files
committed
Merge remote-tracking branch 'communitypr/redis-session-compatible' into AC-12267
2 parents 1b99b6d + bc13dc0 commit e416abc

File tree

7 files changed

+44
-9
lines changed

7 files changed

+44
-9
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
"colinmollenhour/cache-backend-file": "^1.4",
3939
"colinmollenhour/cache-backend-redis": "^1.16",
4040
"colinmollenhour/credis": "^1.15",
41-
"colinmollenhour/php-redis-session-abstract": "^1.5",
41+
"colinmollenhour/php-redis-session-abstract": "^2.0",
4242
"composer/composer": "^2.0, !=2.2.16",
4343
"elasticsearch/elasticsearch": "~7.17.0 || ~8.5.0",
4444
"ezyang/htmlpurifier": "^4.17",

composer.lock

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/internal/Magento/Framework/Session/SaveHandler/Redis/Config.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ class Config implements \Cm\RedisSession\Handler\ConfigInterface
4545
*/
4646
const PARAM_TIMEOUT = 'session/redis/timeout';
4747

48+
/**
49+
* Configuration path for number of connection retries
50+
*/
51+
const PARAM_RETRIES = 'session/redis/retries';
52+
4853
/**
4954
* Configuration path for persistent identifier
5055
*/
@@ -220,6 +225,14 @@ public function getTimeout()
220225
return $this->deploymentConfig->get(self::PARAM_TIMEOUT);
221226
}
222227

228+
/**
229+
* @inheritdoc
230+
*/
231+
public function getRetries()
232+
{
233+
return $this->deploymentConfig->get(self::PARAM_RETRIES);
234+
}
235+
223236
/**
224237
* @inheritdoc
225238
*/

lib/internal/Magento/Framework/Session/Test/Unit/SaveHandler/Redis/ConfigTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,16 @@ public function testGetTimeout()
114114
$this->assertEquals($this->config->getTimeout(), $expected);
115115
}
116116

117+
public function testGetRetries()
118+
{
119+
$expected = 10;
120+
$this->deploymentConfigMock->expects($this->once())
121+
->method('get')
122+
->willReturn(Config::PARAM_RETRIES)
123+
->willReturn($expected);
124+
$this->assertEquals($this->config->getRetries(), $expected);
125+
}
126+
117127
public function testGetPersistentIdentifier()
118128
{
119129
$expected = 'sess01';

lib/internal/Magento/Framework/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"ext-sodium": "*",
2424
"ext-xsl": "*",
2525
"lib-libxml": "*",
26-
"colinmollenhour/php-redis-session-abstract": "^1.5",
26+
"colinmollenhour/php-redis-session-abstract": "^2.0",
2727
"composer/composer": "^2.0, !=2.2.16",
2828
"ezyang/htmlpurifier": "^4.17",
2929
"guzzlehttp/guzzle": "^7.5",

setup/src/Magento/Setup/Model/ConfigOptionsList/Session.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class Session implements ConfigOptionsListInterface
2323
const INPUT_KEY_SESSION_REDIS_PORT = 'session-save-redis-port';
2424
const INPUT_KEY_SESSION_REDIS_PASSWORD = 'session-save-redis-password';
2525
const INPUT_KEY_SESSION_REDIS_TIMEOUT = 'session-save-redis-timeout';
26+
const INPUT_KEY_SESSION_REDIS_RETRIES = 'session-save-redis-retries';
2627
const INPUT_KEY_SESSION_REDIS_PERSISTENT_IDENTIFIER = 'session-save-redis-persistent-id';
2728
const INPUT_KEY_SESSION_REDIS_DATABASE = 'session-save-redis-db';
2829
const INPUT_KEY_SESSION_REDIS_COMPRESSION_THRESHOLD = 'session-save-redis-compression-threshold';
@@ -47,6 +48,7 @@ class Session implements ConfigOptionsListInterface
4748
const CONFIG_PATH_SESSION_REDIS_PORT = 'session/redis/port';
4849
const CONFIG_PATH_SESSION_REDIS_PASSWORD = 'session/redis/password';
4950
const CONFIG_PATH_SESSION_REDIS_TIMEOUT = 'session/redis/timeout';
51+
const CONFIG_PATH_SESSION_REDIS_RETRIES = 'session/redis/retries';
5052
const CONFIG_PATH_SESSION_REDIS_PERSISTENT_IDENTIFIER = 'session/redis/persistent_identifier';
5153
const CONFIG_PATH_SESSION_REDIS_DATABASE = 'session/redis/database';
5254
const CONFIG_PATH_SESSION_REDIS_COMPRESSION_THRESHOLD = 'session/redis/compression_threshold';
@@ -75,6 +77,7 @@ class Session implements ConfigOptionsListInterface
7577
self::INPUT_KEY_SESSION_REDIS_PORT => '6379',
7678
self::INPUT_KEY_SESSION_REDIS_PASSWORD => '',
7779
self::INPUT_KEY_SESSION_REDIS_TIMEOUT => '2.5',
80+
self::INPUT_KEY_SESSION_REDIS_RETRIES => '0',
7881
self::INPUT_KEY_SESSION_REDIS_PERSISTENT_IDENTIFIER => '',
7982
self::INPUT_KEY_SESSION_REDIS_DATABASE => '2',
8083
self::INPUT_KEY_SESSION_REDIS_COMPRESSION_THRESHOLD => '2048',
@@ -117,6 +120,7 @@ class Session implements ConfigOptionsListInterface
117120
self::INPUT_KEY_SESSION_REDIS_PORT => self::CONFIG_PATH_SESSION_REDIS_PORT,
118121
self::INPUT_KEY_SESSION_REDIS_PASSWORD => self::CONFIG_PATH_SESSION_REDIS_PASSWORD,
119122
self::INPUT_KEY_SESSION_REDIS_TIMEOUT => self::CONFIG_PATH_SESSION_REDIS_TIMEOUT,
123+
self::INPUT_KEY_SESSION_REDIS_RETRIES => self::CONFIG_PATH_SESSION_REDIS_RETRIES,
120124
self::INPUT_KEY_SESSION_REDIS_PERSISTENT_IDENTIFIER => self::CONFIG_PATH_SESSION_REDIS_PERSISTENT_IDENTIFIER,
121125
self::INPUT_KEY_SESSION_REDIS_DATABASE => self::CONFIG_PATH_SESSION_REDIS_DATABASE,
122126
self::INPUT_KEY_SESSION_REDIS_COMPRESSION_THRESHOLD => self::CONFIG_PATH_SESSION_REDIS_COMPRESSION_THRESHOLD,
@@ -177,6 +181,12 @@ public function getOptions()
177181
self::CONFIG_PATH_SESSION_REDIS_TIMEOUT,
178182
'Connection timeout, in seconds'
179183
),
184+
new TextConfigOption(
185+
self::INPUT_KEY_SESSION_REDIS_RETRIES,
186+
TextConfigOption::FRONTEND_WIZARD_TEXT,
187+
self::CONFIG_PATH_SESSION_REDIS_RETRIES,
188+
'Redis connection retries.'
189+
),
180190
new TextConfigOption(
181191
self::INPUT_KEY_SESSION_REDIS_PERSISTENT_IDENTIFIER,
182192
TextConfigOption::FRONTEND_WIZARD_TEXT,

setup/src/Magento/Setup/Test/Unit/Model/ConfigOptionsList/SessionTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ public function testCreateConfigWithSessionSaveRedis()
147147
'port' => '',
148148
'password' => '',
149149
'timeout' => '',
150+
'retries' => '',
150151
'persistent_identifier' => '',
151152
'database' => '',
152153
'compression_threshold' => '',
@@ -204,6 +205,7 @@ public function testCreateConfigWithRedisInput()
204205
'port' => '',
205206
'password' => '',
206207
'timeout' => '',
208+
'retries' => '',
207209
'persistent_identifier' => '',
208210
'database' => '',
209211
'compression_threshold' => '',

0 commit comments

Comments
 (0)