Skip to content

Commit

Permalink
Merge pull request #5851 from derrabus/bugfix/default-wrapper-class
Browse files Browse the repository at this point in the history
Allow to explicitly set the wrapper class to the default one
  • Loading branch information
derrabus committed Jan 2, 2023
2 parents 4b51100 + 4f047be commit 3561bc5
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 9 deletions.
13 changes: 4 additions & 9 deletions src/DriverManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
use function assert;
use function class_implements;
use function in_array;
use function is_a;
use function is_string;
use function is_subclass_of;
use function parse_str;
use function parse_url;
use function preg_replace;
Expand Down Expand Up @@ -212,14 +212,9 @@ public static function getConnection(
$driver = $middleware->wrap($driver);
}

$wrapperClass = Connection::class;
if (isset($params['wrapperClass'])) {
if (! is_subclass_of($params['wrapperClass'], $wrapperClass)) {
throw Exception::invalidWrapperClass($params['wrapperClass']);
}

/** @var class-string<Connection> $wrapperClass */
$wrapperClass = $params['wrapperClass'];
$wrapperClass = $params['wrapperClass'] ?? Connection::class;
if (! is_a($wrapperClass, Connection::class, true)) {
throw Exception::invalidWrapperClass($wrapperClass);
}

return new $wrapperClass($params, $driver, $config, $eventManager);
Expand Down
12 changes: 12 additions & 0 deletions tests/DriverManagerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,18 @@ public function testCustomWrapper(): void
self::assertInstanceOf($wrapperClass, $conn);
}

/** @requires extension pdo_sqlite */
public function testDefaultWrapper(): void
{
$options = [
'url' => 'sqlite::memory:',
'wrapperClass' => Connection::class,
];

$conn = DriverManager::getConnection($options);
self::assertSame(Connection::class, get_class($conn));
}

/**
* @requires extension pdo_sqlite
* @psalm-suppress InvalidArgument
Expand Down

0 comments on commit 3561bc5

Please sign in to comment.