diff --git a/src/Symfony/Component/Messenger/Tests/Transport/RedisExt/ConnectionTest.php b/src/Symfony/Component/Messenger/Tests/Transport/RedisExt/ConnectionTest.php index f73db2b642591..66a53f790f50d 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/RedisExt/ConnectionTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/RedisExt/ConnectionTest.php @@ -85,6 +85,19 @@ public function testFromDsnWithQueryOptions() ); } + public function testFromDsnWithMixDsnQueryOptions() + { + $this->assertEquals( + Connection::fromDsn('redis://localhost/queue/group1?serializer=2', ['consumer' => 'specific-consumer']), + Connection::fromDsn('redis://localhost/queue/group1/specific-consumer?serializer=2') + ); + + $this->assertEquals( + Connection::fromDsn('redis://localhost/queue/group1/consumer1', ['consumer' => 'specific-consumer']), + Connection::fromDsn('redis://localhost/queue/group1/consumer1') + ); + } + public function testKeepGettingPendingMessages() { $redis = $this->getMockBuilder(\Redis::class)->disableOriginalConstructor()->getMock(); diff --git a/src/Symfony/Component/Messenger/Transport/RedisExt/Connection.php b/src/Symfony/Component/Messenger/Transport/RedisExt/Connection.php index 560200714ff21..9919ffffda2f3 100644 --- a/src/Symfony/Component/Messenger/Transport/RedisExt/Connection.php +++ b/src/Symfony/Component/Messenger/Transport/RedisExt/Connection.php @@ -101,7 +101,8 @@ public static function fromDsn(string $dsn, array $redisOptions = [], \Redis $re ]; if (isset($parsedUrl['query'])) { - parse_str($parsedUrl['query'], $redisOptions); + parse_str($parsedUrl['query'], $dsnOptions); + $redisOptions = array_merge($redisOptions, $dsnOptions); } $autoSetup = null;
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: