mirror of
https://github.com/dg/dibi.git
synced 2025-07-31 19:30:30 +02:00
renamed driver classes
This commit is contained in:
@@ -23,6 +23,18 @@ use const PHP_SAPI;
|
||||
*/
|
||||
class Connection
|
||||
{
|
||||
private const Drivers = [
|
||||
'firebird' => Drivers\Ibase\Connection::class,
|
||||
'mysqli' => Drivers\MySQLi\Connection::class,
|
||||
'odbc' => Drivers\ODBC\Connection::class,
|
||||
'oracle' => Drivers\OCI8\Connection::class,
|
||||
'pdo' => Drivers\PDO\Connection::class,
|
||||
'postgre' => Drivers\PgSQL\Connection::class,
|
||||
'sqlite3' => Drivers\SQLite3\Connection::class,
|
||||
'sqlite' => Drivers\SQLite3\Connection::class,
|
||||
'sqlsrv' => Drivers\SQLSrv\Connection::class,
|
||||
];
|
||||
|
||||
/** function (Event $event); Occurs after query is executed */
|
||||
public ?array $onEvent = [];
|
||||
private array $config;
|
||||
@@ -131,8 +143,7 @@ class Connection
|
||||
$class = $this->config['driver'];
|
||||
|
||||
} else {
|
||||
$class = preg_replace(['#\W#', '#sql#'], ['_', 'Sql'], ucfirst(strtolower($this->config['driver'])));
|
||||
$class = "Dibi\\Drivers\\{$class}Driver";
|
||||
$class = self::Drivers[strtolower($this->config['driver'])] ?? throw new Exception("Unknown driver '{$this->config['driver']}'.");
|
||||
if (!class_exists($class)) {
|
||||
throw new Exception("Unable to create instance of Dibi driver '$class'.");
|
||||
}
|
||||
@@ -286,7 +297,7 @@ class Connection
|
||||
throw $e;
|
||||
}
|
||||
|
||||
$res = $this->createResultSet($res ?: new Drivers\NoDataResult(max(0, $this->driver->getAffectedRows())));
|
||||
$res = $this->createResultSet($res ?: new Drivers\Dummy\Result(max(0, $this->driver->getAffectedRows())));
|
||||
if ($event) {
|
||||
$this->onEvent($event->done($res));
|
||||
}
|
||||
|
@@ -7,15 +7,16 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\Dummy;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
|
||||
|
||||
/**
|
||||
* The dummy driver for testing purposes.
|
||||
*/
|
||||
class DummyDriver implements Connection, Result, Engine
|
||||
class Connection implements Drivers\Connection, Drivers\Result, Drivers\Engine
|
||||
{
|
||||
public function disconnect(): void
|
||||
{
|
||||
@@ -64,7 +65,7 @@ class DummyDriver implements Connection, Result, Engine
|
||||
/**
|
||||
* Returns the connection reflector.
|
||||
*/
|
||||
public function getReflector(): Engine
|
||||
public function getReflector(): Drivers\Engine
|
||||
{
|
||||
return $this;
|
||||
}
|
@@ -7,14 +7,15 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\Dummy;
|
||||
|
||||
use Dibi\Drivers;
|
||||
|
||||
|
||||
/**
|
||||
* The driver for no result set.
|
||||
*/
|
||||
class NoDataResult implements Result
|
||||
class Result implements Drivers\Result
|
||||
{
|
||||
public function __construct(
|
||||
private readonly int $rows,
|
@@ -7,14 +7,16 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\Engines;
|
||||
|
||||
use Dibi\Drivers\Connection;
|
||||
use Dibi\Drivers\Engine;
|
||||
|
||||
|
||||
/**
|
||||
* The reflector for Firebird/InterBase database.
|
||||
*/
|
||||
class FirebirdReflector implements Engine
|
||||
class FirebirdEngine implements Engine
|
||||
{
|
||||
public function __construct(
|
||||
private readonly Connection $driver,
|
@@ -7,16 +7,18 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\Engines;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers\Connection;
|
||||
use Dibi\Drivers\Engine;
|
||||
|
||||
|
||||
/**
|
||||
* The reflector for MySQL databases.
|
||||
* @internal
|
||||
*/
|
||||
class MySqlReflector implements Engine
|
||||
class MySQLEngine implements Engine
|
||||
{
|
||||
public function __construct(
|
||||
private readonly Connection $driver,
|
@@ -7,15 +7,17 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\Engines;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers\Connection;
|
||||
use Dibi\Drivers\Engine;
|
||||
|
||||
|
||||
/**
|
||||
* The reflector for ODBC connections.
|
||||
*/
|
||||
class OdbcReflector implements Engine
|
||||
class ODBCEngine implements Engine
|
||||
{
|
||||
public function __construct(
|
||||
private readonly Connection $driver,
|
@@ -7,15 +7,17 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\Engines;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers\Connection;
|
||||
use Dibi\Drivers\Engine;
|
||||
|
||||
|
||||
/**
|
||||
* The reflector for Oracle database.
|
||||
*/
|
||||
class OracleReflector implements Engine
|
||||
class OracleEngine implements Engine
|
||||
{
|
||||
public function __construct(
|
||||
private readonly Connection $driver,
|
@@ -7,14 +7,16 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\Engines;
|
||||
|
||||
use Dibi\Drivers\Connection;
|
||||
use Dibi\Drivers\Engine;
|
||||
|
||||
|
||||
/**
|
||||
* The reflector for PostgreSQL database.
|
||||
*/
|
||||
class PostgreReflector implements Engine
|
||||
class PostgreSQLEngine implements Engine
|
||||
{
|
||||
public function __construct(
|
||||
private readonly Connection $driver,
|
@@ -7,16 +7,17 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\Engines;
|
||||
|
||||
use Dibi;
|
||||
use function sprintf;
|
||||
use Dibi\Drivers\Connection;
|
||||
use Dibi\Drivers\Engine;
|
||||
|
||||
|
||||
/**
|
||||
* The reflector for Microsoft SQL Server and SQL Azure databases.
|
||||
*/
|
||||
class SqlsrvReflector implements Engine
|
||||
class SQLServerEngine implements Engine
|
||||
{
|
||||
public function __construct(
|
||||
private readonly Connection $driver,
|
@@ -7,14 +7,16 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\Engines;
|
||||
|
||||
use Dibi\Drivers\Connection;
|
||||
use Dibi\Drivers\Engine;
|
||||
|
||||
|
||||
/**
|
||||
* The reflector for SQLite database.
|
||||
*/
|
||||
class SqliteReflector implements Engine
|
||||
class SQLiteEngine implements Engine
|
||||
{
|
||||
public function __construct(
|
||||
private readonly Connection $driver,
|
@@ -7,9 +7,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\Ibase;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use Dibi\Helpers;
|
||||
use function is_resource;
|
||||
|
||||
@@ -25,7 +26,7 @@ use function is_resource;
|
||||
* - buffers (int) => buffers is the number of database buffers to allocate for the server-side cache. If 0 or omitted, server chooses its own default.
|
||||
* - resource (resource) => existing connection resource
|
||||
*/
|
||||
class FirebirdDriver implements Connection
|
||||
class Connection implements Drivers\Connection
|
||||
{
|
||||
public const ErrorExceptionThrown = -836;
|
||||
|
||||
@@ -200,9 +201,9 @@ class FirebirdDriver implements Connection
|
||||
/**
|
||||
* Returns the connection reflector.
|
||||
*/
|
||||
public function getReflector(): Engine
|
||||
public function getReflector(): Drivers\Engine
|
||||
{
|
||||
return new FirebirdReflector($this);
|
||||
return new Drivers\Engines\FirebirdEngine($this);
|
||||
}
|
||||
|
||||
|
||||
@@ -210,9 +211,9 @@ class FirebirdDriver implements Connection
|
||||
* Result set driver factory.
|
||||
* @param resource $resource
|
||||
*/
|
||||
public function createResultDriver($resource): FirebirdResult
|
||||
public function createResultDriver($resource): Result
|
||||
{
|
||||
return new FirebirdResult($resource);
|
||||
return new Result($resource);
|
||||
}
|
||||
|
||||
|
@@ -7,9 +7,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\Ibase;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use Dibi\Helpers;
|
||||
use function is_resource;
|
||||
|
||||
@@ -17,7 +18,7 @@ use function is_resource;
|
||||
/**
|
||||
* The driver for Firebird/InterBase result set.
|
||||
*/
|
||||
class FirebirdResult implements Result
|
||||
class Result implements Drivers\Result
|
||||
{
|
||||
public function __construct(
|
||||
/** @var resource */
|
||||
@@ -46,7 +47,7 @@ class FirebirdResult implements Result
|
||||
: @ibase_fetch_row($this->resultSet, IBASE_TEXT); // intentionally @
|
||||
|
||||
if (ibase_errcode()) {
|
||||
if (ibase_errcode() === FirebirdDriver::ERROR_EXCEPTION_THROWN) {
|
||||
if (ibase_errcode() === Connection::ERROR_EXCEPTION_THROWN) {
|
||||
preg_match('/exception (\d+) (\w+) (.*)/is', ibase_errmsg(), $match);
|
||||
throw new Dibi\ProcedureException($match[3], $match[1], $match[2]);
|
||||
|
@@ -7,9 +7,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\MySQLi;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use function in_array;
|
||||
use const MYSQLI_REPORT_OFF, MYSQLI_STORE_RESULT, MYSQLI_USE_RESULT, PREG_SET_ORDER;
|
||||
|
||||
@@ -32,7 +33,7 @@ use const MYSQLI_REPORT_OFF, MYSQLI_STORE_RESULT, MYSQLI_USE_RESULT, PREG_SET_OR
|
||||
* - sqlmode => see http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html
|
||||
* - resource (mysqli) => existing connection resource
|
||||
*/
|
||||
class MySqliDriver implements Connection
|
||||
class Connection implements Drivers\Connection
|
||||
{
|
||||
public const ErrorAccessDenied = 1045;
|
||||
public const ErrorDuplicateEntry = 1062;
|
||||
@@ -265,18 +266,18 @@ class MySqliDriver implements Connection
|
||||
/**
|
||||
* Returns the connection reflector.
|
||||
*/
|
||||
public function getReflector(): Engine
|
||||
public function getReflector(): Drivers\Engine
|
||||
{
|
||||
return new MySqlReflector($this);
|
||||
return new Drivers\Engines\MySQLEngine($this);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Result set driver factory.
|
||||
*/
|
||||
public function createResultDriver(\mysqli_result $result): MySqliResult
|
||||
public function createResultDriver(\mysqli_result $result): Result
|
||||
{
|
||||
return new MySqliResult($result, $this->buffered);
|
||||
return new Result($result, $this->buffered);
|
||||
}
|
||||
|
||||
|
@@ -7,16 +7,17 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\MySQLi;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use const MYSQLI_TYPE_LONG, MYSQLI_TYPE_SHORT, MYSQLI_TYPE_TIME, MYSQLI_TYPE_TINY;
|
||||
|
||||
|
||||
/**
|
||||
* The driver for MySQL result set.
|
||||
*/
|
||||
class MySqliResult implements Result
|
||||
class Result implements Drivers\Result
|
||||
{
|
||||
public function __construct(
|
||||
private readonly \mysqli_result $resultSet,
|
@@ -7,9 +7,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\OCI8;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use function in_array, is_resource;
|
||||
|
||||
|
||||
@@ -26,7 +27,7 @@ use function in_array, is_resource;
|
||||
* - resource (resource) => existing connection resource
|
||||
* - persistent => Creates persistent connections with oci_pconnect instead of oci_new_connect
|
||||
*/
|
||||
class OracleDriver implements Connection
|
||||
class Connection implements Drivers\Connection
|
||||
{
|
||||
/** @var resource */
|
||||
private $connection;
|
||||
@@ -190,9 +191,9 @@ class OracleDriver implements Connection
|
||||
/**
|
||||
* Returns the connection reflector.
|
||||
*/
|
||||
public function getReflector(): Engine
|
||||
public function getReflector(): Drivers\Engine
|
||||
{
|
||||
return new OracleReflector($this);
|
||||
return new Drivers\Engines\OracleEngine($this);
|
||||
}
|
||||
|
||||
|
||||
@@ -200,9 +201,9 @@ class OracleDriver implements Connection
|
||||
* Result set driver factory.
|
||||
* @param resource $resource
|
||||
*/
|
||||
public function createResultDriver($resource): OracleResult
|
||||
public function createResultDriver($resource): Result
|
||||
{
|
||||
return new OracleResult($resource);
|
||||
return new Result($resource);
|
||||
}
|
||||
|
||||
|
@@ -7,16 +7,17 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\OCI8;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use function is_resource;
|
||||
|
||||
|
||||
/**
|
||||
* The driver for Oracle result set.
|
||||
*/
|
||||
class OracleResult implements Result
|
||||
class Result implements Drivers\Result
|
||||
{
|
||||
public function __construct(
|
||||
/** @var resource */
|
@@ -7,9 +7,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\ODBC;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use function is_resource;
|
||||
|
||||
|
||||
@@ -24,7 +25,7 @@ use function is_resource;
|
||||
* - resource (resource) => existing connection resource
|
||||
* - microseconds (bool) => use microseconds in datetime format?
|
||||
*/
|
||||
class OdbcDriver implements Connection
|
||||
class Connection implements Drivers\Connection
|
||||
{
|
||||
/** @var resource */
|
||||
private $connection;
|
||||
@@ -176,9 +177,9 @@ class OdbcDriver implements Connection
|
||||
/**
|
||||
* Returns the connection reflector.
|
||||
*/
|
||||
public function getReflector(): Engine
|
||||
public function getReflector(): Drivers\Engine
|
||||
{
|
||||
return new OdbcReflector($this);
|
||||
return new Drivers\Engines\ODBCEngine($this);
|
||||
}
|
||||
|
||||
|
||||
@@ -186,9 +187,9 @@ class OdbcDriver implements Connection
|
||||
* Result set driver factory.
|
||||
* @param resource $resource
|
||||
*/
|
||||
public function createResultDriver($resource): OdbcResult
|
||||
public function createResultDriver($resource): Result
|
||||
{
|
||||
return new OdbcResult($resource);
|
||||
return new Result($resource);
|
||||
}
|
||||
|
||||
|
@@ -7,16 +7,17 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\ODBC;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use function is_resource;
|
||||
|
||||
|
||||
/**
|
||||
* The driver interacting with result set via ODBC connections.
|
||||
*/
|
||||
class OdbcResult implements Result
|
||||
class Result implements Drivers\Result
|
||||
{
|
||||
private int $row = 0;
|
||||
|
@@ -7,9 +7,11 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\PDO;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use Dibi\Drivers\Engines;
|
||||
use Dibi\Helpers;
|
||||
use PDO;
|
||||
use function sprintf;
|
||||
@@ -25,7 +27,7 @@ use function sprintf;
|
||||
* - options (array) => driver specific options {@see PDO::__construct}
|
||||
* - resource (PDO) => existing connection
|
||||
*/
|
||||
class PdoDriver implements Connection
|
||||
class Connection implements Drivers\Connection
|
||||
{
|
||||
private ?PDO $connection;
|
||||
private ?int $affectedRows;
|
||||
@@ -94,10 +96,10 @@ class PdoDriver implements Connection
|
||||
$code ??= 0;
|
||||
$message = "SQLSTATE[$sqlState]: $message";
|
||||
throw match ($this->driverName) {
|
||||
'mysql' => MySqliDriver::createException($message, $code, $sql),
|
||||
'oci' => OracleDriver::createException($message, $code, $sql),
|
||||
'pgsql' => PostgreDriver::createException($message, $sqlState, $sql),
|
||||
'sqlite' => SqliteDriver::createException($message, $code, $sql),
|
||||
'mysql' => Drivers\MySQLi\Connection::createException($message, $code, $sql),
|
||||
'oci' => Drivers\OCI8\Connection::createException($message, $code, $sql),
|
||||
'pgsql' => Drivers\PgSQL\Connection::createException($message, $sqlState, $sql),
|
||||
'sqlite' => Drivers\SQLite3\Connection::createException($message, $code, $sql),
|
||||
default => new Dibi\DriverException($message, $code, $sql),
|
||||
};
|
||||
}
|
||||
@@ -172,14 +174,14 @@ class PdoDriver implements Connection
|
||||
/**
|
||||
* Returns the connection reflector.
|
||||
*/
|
||||
public function getReflector(): Engine
|
||||
public function getReflector(): Drivers\Engine
|
||||
{
|
||||
return match ($this->driverName) {
|
||||
'mysql' => new MySqlReflector($this),
|
||||
'oci' => new OracleReflector($this),
|
||||
'pgsql' => new PostgreReflector($this),
|
||||
'sqlite' => new SqliteReflector($this),
|
||||
'mssql', 'dblib', 'sqlsrv' => new SqlsrvReflector($this),
|
||||
'mysql' => new Engines\MySQLEngine($this),
|
||||
'oci' => new Engines\OracleEngine($this),
|
||||
'pgsql' => new Engines\PostgreSQLEngine($this),
|
||||
'sqlite' => new Engines\SQLiteEngine($this),
|
||||
'mssql', 'dblib', 'sqlsrv' => new Engines\SQLServerEngine($this),
|
||||
default => throw new Dibi\NotSupportedException,
|
||||
};
|
||||
}
|
||||
@@ -188,9 +190,9 @@ class PdoDriver implements Connection
|
||||
/**
|
||||
* Result set driver factory.
|
||||
*/
|
||||
public function createResultDriver(\PDOStatement $result): PdoResult
|
||||
public function createResultDriver(\PDOStatement $result): Result
|
||||
{
|
||||
return new PdoResult($result, $this->driverName);
|
||||
return new Result($result, $this->driverName);
|
||||
}
|
||||
|
||||
|
@@ -7,9 +7,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\PDO;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use Dibi\Helpers;
|
||||
use PDO;
|
||||
|
||||
@@ -17,7 +18,7 @@ use PDO;
|
||||
/**
|
||||
* The driver for PDO result set.
|
||||
*/
|
||||
class PdoResult implements Result
|
||||
class Result implements Drivers\Result
|
||||
{
|
||||
public function __construct(
|
||||
private ?\PDOStatement $resultSet,
|
@@ -7,9 +7,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\PgSQL;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use Dibi\Helpers;
|
||||
use PgSql;
|
||||
use function in_array, is_array, is_resource, strlen;
|
||||
@@ -27,7 +28,7 @@ use function in_array, is_array, is_resource, strlen;
|
||||
* - resource (PgSql\Connection) => existing connection resource
|
||||
* - connect_type (int) => see pg_connect()
|
||||
*/
|
||||
class PostgreDriver implements Connection
|
||||
class Connection implements Drivers\Connection
|
||||
{
|
||||
private PgSql\Connection $connection;
|
||||
private ?int $affectedRows;
|
||||
@@ -232,18 +233,18 @@ class PostgreDriver implements Connection
|
||||
/**
|
||||
* Returns the connection reflector.
|
||||
*/
|
||||
public function getReflector(): Engine
|
||||
public function getReflector(): Drivers\Engine
|
||||
{
|
||||
return new PostgreReflector($this);
|
||||
return new Drivers\Engines\PostgreSQLEngine($this);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Result set driver factory.
|
||||
*/
|
||||
public function createResultDriver(PgSql\Result $resource): PostgreResult
|
||||
public function createResultDriver(PgSql\Result $resource): Result
|
||||
{
|
||||
return new PostgreResult($resource);
|
||||
return new Result($resource);
|
||||
}
|
||||
|
||||
|
@@ -7,8 +7,9 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\PgSQL;
|
||||
|
||||
use Dibi\Drivers;
|
||||
use Dibi\Helpers;
|
||||
use PgSql;
|
||||
use function is_resource;
|
||||
@@ -17,7 +18,7 @@ use function is_resource;
|
||||
/**
|
||||
* The driver for PostgreSQL result set.
|
||||
*/
|
||||
class PostgreResult implements Result
|
||||
class Result implements Drivers\Result
|
||||
{
|
||||
public function __construct(
|
||||
private readonly PgSql\Result $resultSet,
|
@@ -7,9 +7,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\SQLSrv;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use Dibi\Helpers;
|
||||
use function is_resource, sprintf;
|
||||
|
||||
@@ -26,7 +27,7 @@ use function is_resource, sprintf;
|
||||
* - charset => character encoding to set (default is UTF-8)
|
||||
* - resource (resource) => existing connection resource
|
||||
*/
|
||||
class SqlsrvDriver implements Connection
|
||||
class Connection implements Drivers\Connection
|
||||
{
|
||||
/** @var resource */
|
||||
private $connection;
|
||||
@@ -171,9 +172,9 @@ class SqlsrvDriver implements Connection
|
||||
/**
|
||||
* Returns the connection reflector.
|
||||
*/
|
||||
public function getReflector(): Engine
|
||||
public function getReflector(): Drivers\Engine
|
||||
{
|
||||
return new SqlsrvReflector($this);
|
||||
return new Drivers\Engines\SQLServerEngine($this);
|
||||
}
|
||||
|
||||
|
||||
@@ -181,9 +182,9 @@ class SqlsrvDriver implements Connection
|
||||
* Result set driver factory.
|
||||
* @param resource $resource
|
||||
*/
|
||||
public function createResultDriver($resource): SqlsrvResult
|
||||
public function createResultDriver($resource): Result
|
||||
{
|
||||
return new SqlsrvResult($resource);
|
||||
return new Result($resource);
|
||||
}
|
||||
|
||||
|
@@ -7,16 +7,17 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\SQLSrv;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use function is_resource;
|
||||
|
||||
|
||||
/**
|
||||
* The driver for Microsoft SQL Server and SQL Azure result set.
|
||||
*/
|
||||
class SqlsrvResult implements Result
|
||||
class Result implements Drivers\Result
|
||||
{
|
||||
public function __construct(
|
||||
/** @var resource */
|
@@ -7,9 +7,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\SQLite3;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use Dibi\Helpers;
|
||||
use SQLite3;
|
||||
|
||||
@@ -23,7 +24,7 @@ use SQLite3;
|
||||
* - formatDateTime => how to format datetime in SQL (@see date)
|
||||
* - resource (SQLite3) => existing connection resource
|
||||
*/
|
||||
class SqliteDriver implements Connection
|
||||
class Connection implements Drivers\Connection
|
||||
{
|
||||
private SQLite3 $connection;
|
||||
private string $fmtDate;
|
||||
@@ -174,18 +175,18 @@ class SqliteDriver implements Connection
|
||||
/**
|
||||
* Returns the connection reflector.
|
||||
*/
|
||||
public function getReflector(): Engine
|
||||
public function getReflector(): Drivers\Engine
|
||||
{
|
||||
return new SqliteReflector($this);
|
||||
return new Drivers\Engines\SQLiteEngine($this);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Result set driver factory.
|
||||
*/
|
||||
public function createResultDriver(\SQLite3Result $result): SqliteResult
|
||||
public function createResultDriver(\SQLite3Result $result): Result
|
||||
{
|
||||
return new SqliteResult($result);
|
||||
return new Result($result);
|
||||
}
|
||||
|
||||
|
@@ -7,9 +7,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
namespace Dibi\Drivers\SQLite3;
|
||||
|
||||
use Dibi;
|
||||
use Dibi\Drivers;
|
||||
use Dibi\Helpers;
|
||||
use const SQLITE3_ASSOC, SQLITE3_BLOB, SQLITE3_FLOAT, SQLITE3_INTEGER, SQLITE3_NULL, SQLITE3_NUM, SQLITE3_TEXT;
|
||||
|
||||
@@ -17,7 +18,7 @@ use const SQLITE3_ASSOC, SQLITE3_BLOB, SQLITE3_FLOAT, SQLITE3_INTEGER, SQLITE3_N
|
||||
/**
|
||||
* The driver for SQLite result set.
|
||||
*/
|
||||
class SqliteResult implements Result
|
||||
class Result implements Drivers\Result
|
||||
{
|
||||
public function __construct(
|
||||
private readonly \SQLite3Result $resultSet,
|
@@ -1,18 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Dibi, smart database abstraction layer (https://dibiphp.com)
|
||||
* Copyright (c) 2005 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
|
||||
|
||||
/**
|
||||
* Alias for SqliteDriver driver.
|
||||
*/
|
||||
class Sqlite3Driver extends SqliteDriver
|
||||
{
|
||||
}
|
@@ -1,18 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Dibi, smart database abstraction layer (https://dibiphp.com)
|
||||
* Copyright (c) 2005 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dibi\Drivers;
|
||||
|
||||
|
||||
/**
|
||||
* Alias for SqliteResult driver.
|
||||
*/
|
||||
class Sqlite3Result extends SqliteResult
|
||||
{
|
||||
}
|
@@ -2,12 +2,14 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Dibi\Drivers\SQLSrv\Connection;
|
||||
use Dibi\Drivers\SQLSrv\Result;
|
||||
use Tester\Assert;
|
||||
|
||||
require __DIR__ . '/bootstrap.php';
|
||||
|
||||
|
||||
class MockDriver extends Dibi\Drivers\SqlsrvDriver
|
||||
class MockDriver extends Connection
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
@@ -19,14 +21,14 @@ class MockDriver extends Dibi\Drivers\SqlsrvDriver
|
||||
}
|
||||
|
||||
|
||||
public function query(string $sql): ?Dibi\Drivers\Result
|
||||
public function query(string $sql): ?Result
|
||||
{
|
||||
return new MockResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class MockResult extends Dibi\Drivers\SqlsrvResult
|
||||
class MockResult extends Result
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
|
@@ -14,7 +14,7 @@ function buildPdoDriver(?int $errorMode)
|
||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, $errorMode);
|
||||
}
|
||||
|
||||
new Dibi\Drivers\PdoDriver(['resource' => $pdo]);
|
||||
new Dibi\Drivers\PDO\Connection(['resource' => $pdo]);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user