fix redis multi host dsn not recognized

This commit is contained in:
Jan Christoph Beyer 2019-12-13 12:27:55 +01:00 committed by Nicolas Grekas
parent 88ed8172d8
commit 81ba07aa26

View File

@ -50,13 +50,13 @@ class SessionHandlerFactory
case 0 === strpos($connection, 'file://'): case 0 === strpos($connection, 'file://'):
return new StrictSessionHandler(new NativeFileSessionHandler(substr($connection, 7))); return new StrictSessionHandler(new NativeFileSessionHandler(substr($connection, 7)));
case 0 === strpos($connection, 'redis://'): case 0 === strpos($connection, 'redis:'):
case 0 === strpos($connection, 'rediss://'): case 0 === strpos($connection, 'rediss:'):
case 0 === strpos($connection, 'memcached://'): case 0 === strpos($connection, 'memcached:'):
if (!class_exists(AbstractAdapter::class)) { if (!class_exists(AbstractAdapter::class)) {
throw new InvalidArgumentException(sprintf('Unsupported DSN "%s". Try running "composer require symfony/cache".', $connection)); throw new InvalidArgumentException(sprintf('Unsupported DSN "%s". Try running "composer require symfony/cache".', $connection));
} }
$handlerClass = 0 === strpos($connection, 'memcached://') ? MemcachedSessionHandler::class : RedisSessionHandler::class; $handlerClass = 0 === strpos($connection, 'memcached:') ? MemcachedSessionHandler::class : RedisSessionHandler::class;
$connection = AbstractAdapter::createConnection($connection, ['lazy' => true]); $connection = AbstractAdapter::createConnection($connection, ['lazy' => true]);
return new $handlerClass($connection); return new $handlerClass($connection);