Removed ability to use class paths as DSN protocols.
This commit is contained in:
parent
23ba13138e
commit
c43b3b56b0
3 changed files with 7 additions and 20 deletions
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
0.2410.51409
|
0.2410.160117
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
// DbTools.php
|
// DbTools.php
|
||||||
// Created: 2021-05-02
|
// Created: 2021-05-02
|
||||||
// Updated: 2024-10-04
|
// Updated: 2024-10-16
|
||||||
|
|
||||||
namespace Index\Db;
|
namespace Index\Db;
|
||||||
|
|
||||||
|
@ -51,24 +51,14 @@ final class DbTools {
|
||||||
$backend = $backends[$scheme] ?? null;
|
$backend = $backends[$scheme] ?? null;
|
||||||
|
|
||||||
if(!($backend instanceof DbBackend)) {
|
if(!($backend instanceof DbBackend)) {
|
||||||
$backend = null;
|
if(!array_key_exists($scheme, self::DB_PROTOS))
|
||||||
|
|
||||||
if(array_key_exists($scheme, self::DB_PROTOS))
|
|
||||||
$name = self::DB_PROTOS[$scheme];
|
|
||||||
else
|
|
||||||
$name = str_replace('-', '\\', (string)$scheme);
|
|
||||||
|
|
||||||
if(class_exists($name) && is_subclass_of($name, DbBackend::class)) {
|
|
||||||
$backend = new $name;
|
|
||||||
$name = get_class($backend);
|
|
||||||
}
|
|
||||||
|
|
||||||
if($backend === null)
|
|
||||||
throw new RuntimeException('No implementation is available for the specified scheme.');
|
throw new RuntimeException('No implementation is available for the specified scheme.');
|
||||||
|
|
||||||
|
$backend = new (self::DB_PROTOS[$scheme]);
|
||||||
if(!$backend->isAvailable())
|
if(!$backend->isAvailable())
|
||||||
throw new RuntimeException('Requested database backend is not available, likely due to missing dependencies.');
|
throw new RuntimeException('Requested database backend is not available, likely due to missing dependencies.');
|
||||||
|
|
||||||
$backends[$name] = $backend;
|
$backends[$scheme] = $backend;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $backend;
|
return $backend;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
// DbToolsTest.php
|
// DbToolsTest.php
|
||||||
// Created: 2021-04-28
|
// Created: 2021-04-28
|
||||||
// Updated: 2024-10-04
|
// Updated: 2024-10-16
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
@ -38,9 +38,6 @@ final class DbToolsTest extends TestCase {
|
||||||
$nullDbConn1 = DbTools::create('null:');
|
$nullDbConn1 = DbTools::create('null:');
|
||||||
$this->assertInstanceOf(NullDbConnection::class, $nullDbConn1);
|
$this->assertInstanceOf(NullDbConnection::class, $nullDbConn1);
|
||||||
|
|
||||||
$nullDbConn2 = DbTools::create('Index-Db-NullDb-NullDbBackend:');
|
|
||||||
$this->assertInstanceOf(NullDbConnection::class, $nullDbConn2);
|
|
||||||
|
|
||||||
$maria = new MariaDbBackend;
|
$maria = new MariaDbBackend;
|
||||||
$sqlite = new SqliteBackend;
|
$sqlite = new SqliteBackend;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue