Skip to content

Commit 66655b4

Browse files
committed
Assure un partage correct de la connexion à la base de données
Assure que la connexion à la base de données n'est partagée que si le groupe demandé est le même que celui de la connexion existante. Cela permet d'éviter qu'une connexion partagée soit renvoyée pour un groupe de base de données différent, ce qui entraînerait un comportement inattendu.
1 parent d393bf4 commit 66655b4

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

src/Config/Services.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,15 @@ public static function builder(?string $group = null, bool $shared = true): Base
3939
*/
4040
public static function database(?string $group = null, bool $shared = true): BaseConnection
4141
{
42-
if (true === $shared && isset(static::$instances[Database::class])) {
42+
/** @var ConnectionResolverInterface */
43+
$connectionResolver = static::container()->get(ConnectionResolverInterface::class);
44+
[$group] = $connectionResolver->connectionInfo($group);
45+
46+
if (true === $shared && isset(static::$instances[Database::class]) && static::$instances[Database::class]->group === $group) {
4347
return static::$instances[Database::class];
4448
}
4549

46-
return static::$instances[Database::class] = static::container()->get(ConnectionResolverInterface::class)->connect($group);
50+
return static::$instances[Database::class] = $connectionResolver->connect($group);
4751
}
4852

4953
/**

0 commit comments

Comments
 (0)