diff --git a/phpBB/phpbb/db/doctrine/case_insensitive_string.php b/phpBB/phpbb/db/doctrine/case_insensitive_string.php index 484308fc06..a8ac6e7605 100644 --- a/phpBB/phpbb/db/doctrine/case_insensitive_string.php +++ b/phpBB/phpbb/db/doctrine/case_insensitive_string.php @@ -15,6 +15,8 @@ namespace phpbb\db\doctrine; use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Types\Type; +use phpbb\db\middleware\postgresql\phpbb_postgresql_platform; +use phpbb\db\middleware\oracle\phpbb_oracle_platform; /** * Case-insensitive string type (only supported by Postgres). @@ -28,7 +30,7 @@ class case_insensitive_string extends Type */ public function getSQLDeclaration(array $column, AbstractPlatform $platform): string { - if ($platform instanceof postgresql_platform) + if ($platform instanceof phpbb_postgresql_platform) { return 'varchar_ci'; } @@ -37,7 +39,7 @@ class case_insensitive_string extends Type // we used 3 times larger capacity for strings on oracle for unicode strings // as on other platforms. This is not the case with varchar_ci, which uses // the same length as other platforms. - if ($platform instanceof oracle_platform) + if ($platform instanceof phpbb_oracle_platform) { return $platform->getAsciiStringTypeDeclarationSQL($column); } diff --git a/phpBB/phpbb/db/doctrine/connection_factory.php b/phpBB/phpbb/db/doctrine/connection_factory.php index fb24994b3d..5ae5107da4 100644 --- a/phpBB/phpbb/db/doctrine/connection_factory.php +++ b/phpBB/phpbb/db/doctrine/connection_factory.php @@ -13,12 +13,17 @@ namespace phpbb\db\doctrine; +use Doctrine\DBAL\Configuration; use Doctrine\DBAL\Connection; use Doctrine\DBAL\DriverManager; use Doctrine\DBAL\Exception; use Doctrine\DBAL\Types\Type; use InvalidArgumentException; use phpbb\config_php_file; +use phpbb\db\middleware\mysql\phpbb_mysql_middleware; +use phpbb\db\middleware\oracle\phpbb_oracle_middleware; +use phpbb\db\middleware\postgresql\phpbb_postgresql_middleware; +use phpbb\db\middleware\sqlsrv\phpbb_sqlsrv_middleware; use phpbb\exception\runtime_exception; /** @@ -94,9 +99,21 @@ class connection_factory $port ); + $middleware = match($driver) + { + 'pdo_mysql', 'mysqli' => [new phpbb_mysql_middleware()], + 'pdo_oci', 'oci8' => [new phpbb_oracle_middleware()], + 'pdo_pgsql', 'pgsql' => [new phpbb_postgresql_middleware()], + 'pdo_sqlsrv', 'sqlsrv' => [new phpbb_sqlsrv_middleware()], + default => [], + }; + try { - $connection = DriverManager::getConnection($params); + $connection_config = new Configuration(); + $connection_config->setMiddlewares($middleware); + + $connection = DriverManager::getConnection($params, $connection_config); if (!Type::hasType(case_insensitive_string::CASE_INSENSITIVE_STRING)) { Type::addType(case_insensitive_string::CASE_INSENSITIVE_STRING, case_insensitive_string::class); diff --git a/phpBB/phpbb/db/doctrine/connection_parameter_factory.php b/phpBB/phpbb/db/doctrine/connection_parameter_factory.php index 90e41061fc..6e59c4a61e 100644 --- a/phpBB/phpbb/db/doctrine/connection_parameter_factory.php +++ b/phpBB/phpbb/db/doctrine/connection_parameter_factory.php @@ -14,7 +14,6 @@ namespace phpbb\db\doctrine; use InvalidArgumentException; -use phpbb\db\doctrine\oci8\driver as oci8_driver; /** * Helper class to generate Doctrine DBAL configuration. @@ -146,37 +145,17 @@ class connection_parameter_factory */ private static function enrich_parameters(array $params) : array { - $enrichment_tags = [ - 'pdo_mysql' => [ - 'charset' => 'UTF8', - 'platform' => new mysql_platform(), - ], - 'oci8' => [ - 'charset' => 'UTF8', - 'platform' => new oracle_platform(), - 'driverClass' => oci8_driver::class, - ], - 'pdo_pgsql' => [ - 'charset' => 'UTF8', - 'platform' => new postgresql_platform(), - ], - 'pdo_sqlsrv' => [ - 'platform' => new sqlsrv_platform(), - ], - ]; + if (in_array($params['driver'], ['mysqli', 'pdo_mysql', 'pgsql', 'pdo_pgsql', 'oci8', 'pdo_oci'])) + { + $params['charset'] = 'UTF8'; + } if ($params['driver'] === 'pdo_mysql' && extension_loaded('pdo_mysql')) { - $enrichment_tags['pdo_mysql'][\PDO::MYSQL_ATTR_FOUND_ROWS] = true; + $params[\PDO::MYSQL_ATTR_FOUND_ROWS] = true; } - $driver = $params['driver']; - if (!array_key_exists($driver, $enrichment_tags)) - { - return $params; - } - - return array_merge($params, $enrichment_tags[$driver]); + return $params; } /* diff --git a/phpBB/phpbb/db/doctrine/oci8/connection.php b/phpBB/phpbb/db/doctrine/oci8/connection.php deleted file mode 100644 index 34ed744e9d..0000000000 --- a/phpBB/phpbb/db/doctrine/oci8/connection.php +++ /dev/null @@ -1,99 +0,0 @@ - - * @license GNU General Public License, version 2 (GPL-2.0) - * - * For full copyright and license information, please see - * the docs/CREDITS.txt file. - * - */ - -namespace phpbb\db\doctrine\oci8; - -use Doctrine\DBAL\Driver\Connection as DriverConnection; -use Doctrine\DBAL\Driver\Result as DriverResult; -use Doctrine\DBAL\Driver\Statement as DriverStatement; -use Doctrine\DBAL\ParameterType; - -class connection implements DriverConnection -{ - /** - * @var DriverConnection - */ - private $wrapped; - - /** - * @param DriverConnection $wrapped - */ - public function __construct(DriverConnection $wrapped) - { - $this->wrapped = $wrapped; - } - - /** - * {@inheritDoc} - */ - public function prepare(string $sql): DriverStatement - { - return new statement($this->wrapped->prepare($sql)); - } - - /** - * {@inheritDoc} - */ - public function query(string $sql): DriverResult - { - return new result($this->wrapped->query($sql)); - } - - /** - * {@inheritDoc} - */ - public function quote($value, $type = ParameterType::STRING) - { - return $this->wrapped->quote($value, $type); - } - - /** - * {@inheritDoc} - */ - public function exec(string $sql): int - { - return $this->wrapped->exec($sql); - } - - /** - * {@inheritDoc} - */ - public function lastInsertId($name = null) - { - return $this->wrapped->lastInsertId($name); - } - - /** - * {@inheritDoc} - */ - public function beginTransaction(): bool - { - return $this->wrapped->beginTransaction(); - } - - /** - * {@inheritDoc} - */ - public function commit(): bool - { - return $this->wrapped->commit(); - } - - /** - * {@inheritDoc} - */ - public function rollBack(): bool - { - return $this->wrapped->rollBack(); - } -} diff --git a/phpBB/phpbb/db/doctrine/oci8/driver.php b/phpBB/phpbb/db/doctrine/oci8/driver.php deleted file mode 100644 index 9a2c67aee0..0000000000 --- a/phpBB/phpbb/db/doctrine/oci8/driver.php +++ /dev/null @@ -1,65 +0,0 @@ - - * @license GNU General Public License, version 2 (GPL-2.0) - * - * For full copyright and license information, please see - * the docs/CREDITS.txt file. - * - */ - -namespace phpbb\db\doctrine\oci8; - -use Doctrine\DBAL\Connection as DoctrineConnection; -use Doctrine\DBAL\Driver\API\ExceptionConverter; -use Doctrine\DBAL\Platforms\AbstractPlatform; -use Doctrine\DBAL\Driver as DoctrineDriver; -use Doctrine\DBAL\Driver\OCI8\Driver as OCI8Driver; - -class driver implements DoctrineDriver -{ - /** - * @var DoctrineDriver - */ - private $wrapped; - - public function __construct() - { - $this->wrapped = new OCI8Driver(); - } - - /** - * {@inheritDoc} - */ - public function connect(array $params) - { - return new connection($this->wrapped->connect($params)); - } - - /** - * {@inheritDoc} - */ - public function getDatabasePlatform() - { - return $this->wrapped->getDatabasePlatform(); - } - - /** - * {@inheritDoc} - */ - public function getSchemaManager(DoctrineConnection $conn, AbstractPlatform $platform) - { - return new schema_manager($conn, $platform); - } - - /** - * {@inheritDoc} - */ - public function getExceptionConverter(): ExceptionConverter - { - return $this->wrapped->getExceptionConverter(); - } -} diff --git a/phpBB/phpbb/db/doctrine/oci8/result.php b/phpBB/phpbb/db/doctrine/oci8/result.php deleted file mode 100644 index 1ab1085427..0000000000 --- a/phpBB/phpbb/db/doctrine/oci8/result.php +++ /dev/null @@ -1,109 +0,0 @@ - - * @license GNU General Public License, version 2 (GPL-2.0) - * - * For full copyright and license information, please see - * the docs/CREDITS.txt file. - * - */ - -namespace phpbb\db\doctrine\oci8; - -use Doctrine\DBAL\Driver\Result as DriverResult; - -class result implements DriverResult -{ - /** - * @var DriverResult - */ - private $wrapped; - - /** - * @param DriverResult $wrapped - */ - public function __construct(DriverResult $wrapped) - { - $this->wrapped = $wrapped; - } - - /** - * {@inheritDoc} - */ - public function fetchNumeric() - { - return $this->wrapped->fetchNumeric(); - } - - /** - * {@inheritDoc} - */ - public function fetchAssociative() - { - return array_change_key_case($this->wrapped->fetchAssociative(), CASE_LOWER); - } - - /** - * {@inheritDoc} - */ - public function fetchOne() - { - return $this->wrapped->fetchOne(); - } - - /** - * {@inheritDoc} - */ - public function fetchAllNumeric(): array - { - return $this->wrapped->fetchAllNumeric(); - } - - /** - * {@inheritDoc} - */ - public function fetchAllAssociative(): array - { - $rows = []; - foreach ($this->wrapped->fetchAllAssociative() as $row) - { - $rows[] = array_change_key_case($row, CASE_LOWER); - } - return $rows; - } - - /** - * {@inheritDoc} - */ - public function fetchFirstColumn(): array - { - return $this->wrapped->fetchFirstColumn(); - } - - /** - * {@inheritDoc} - */ - public function rowCount(): int - { - return $this->wrapped->rowCount(); - } - - /** - * {@inheritDoc} - */ - public function columnCount(): int - { - return $this->wrapped->columnCount(); - } - - /** - * {@inheritDoc} - */ - public function free(): void - { - $this->wrapped->free(); - } -} diff --git a/phpBB/phpbb/db/doctrine/oci8/statement.php b/phpBB/phpbb/db/doctrine/oci8/statement.php deleted file mode 100644 index bca22473c4..0000000000 --- a/phpBB/phpbb/db/doctrine/oci8/statement.php +++ /dev/null @@ -1,58 +0,0 @@ - - * @license GNU General Public License, version 2 (GPL-2.0) - * - * For full copyright and license information, please see - * the docs/CREDITS.txt file. - * - */ - -namespace phpbb\db\doctrine\oci8; - -use Doctrine\DBAL\Driver\Result as DriverResult; -use Doctrine\DBAL\Driver\Statement as DriverStatement; -use Doctrine\DBAL\ParameterType; - -class statement implements DriverStatement -{ - /** - * @var DriverStatement - */ - private $wrapped; - - /** - * @param DriverStatement $wrapped - */ - public function __construct(DriverStatement $wrapped) - { - $this->wrapped = $wrapped; - } - - /** - * {@inheritDoc} - */ - public function bindValue($param, $value, $type = ParameterType::STRING): bool - { - return $this->wrapped->bindValue($param, $value, $type); - } - - /** - * {@inheritDoc} - */ - public function bindParam($param, &$variable, $type = ParameterType::STRING, $length = null): bool - { - return $this->wrapped->bindParam($param, $variable, $type, $length); - } - - /** - * {@inheritDoc} - */ - public function execute($params = null): DriverResult - { - return new result($this->wrapped->execute($params)); - } -} diff --git a/phpBB/phpbb/db/middleware/mysql/phpbb_mysql_driver.php b/phpBB/phpbb/db/middleware/mysql/phpbb_mysql_driver.php new file mode 100644 index 0000000000..651a979765 --- /dev/null +++ b/phpBB/phpbb/db/middleware/mysql/phpbb_mysql_driver.php @@ -0,0 +1,31 @@ + + * @license GNU General Public License, version 2 (GPL-2.0) + * + * For full copyright and license information, please see + * the docs/CREDITS.txt file. + * + */ + +namespace phpbb\db\middleware\mysql; + +use Doctrine\DBAL\Driver\Middleware\AbstractDriverMiddleware; + +/** + * MySQL Doctrine driver middleware. + * Makes use of phpBB's MySQL specific platform. + */ +class phpbb_mysql_driver extends AbstractDriverMiddleware +{ + /** + * {@inheritDoc} + */ + public function createDatabasePlatformForVersion($version) + { + return new phpbb_mysql_platform(); + } +} diff --git a/phpBB/phpbb/db/middleware/mysql/phpbb_mysql_middleware.php b/phpBB/phpbb/db/middleware/mysql/phpbb_mysql_middleware.php new file mode 100644 index 0000000000..5e79142a9e --- /dev/null +++ b/phpBB/phpbb/db/middleware/mysql/phpbb_mysql_middleware.php @@ -0,0 +1,28 @@ + + * @license GNU General Public License, version 2 (GPL-2.0) + * + * For full copyright and license information, please see + * the docs/CREDITS.txt file. + * + */ + +namespace phpbb\db\middleware\mysql; + +use Doctrine\DBAL\Driver; + +/** + * MySQL Doctrine middleware. + * Makes use of phpBB's MySQL specific platform. + */ +class phpbb_mysql_middleware implements Driver\Middleware +{ + public function wrap(Driver $driver): Driver + { + return new phpbb_mysql_driver($driver); + } +} diff --git a/phpBB/phpbb/db/doctrine/mysql_platform.php b/phpBB/phpbb/db/middleware/mysql/phpbb_mysql_platform.php similarity index 93% rename from phpBB/phpbb/db/doctrine/mysql_platform.php rename to phpBB/phpbb/db/middleware/mysql/phpbb_mysql_platform.php index 8a2090b6d9..a64430613d 100644 --- a/phpBB/phpbb/db/doctrine/mysql_platform.php +++ b/phpBB/phpbb/db/middleware/mysql/phpbb_mysql_platform.php @@ -11,7 +11,7 @@ * */ -namespace phpbb\db\doctrine; +namespace phpbb\db\middleware\mysql; use Doctrine\DBAL\Platforms\AbstractMySQLPlatform; use Doctrine\DBAL\Schema\TableDiff; @@ -23,7 +23,7 @@ use Doctrine\DBAL\Schema\TableDiff; * If it's indexed as primary key, it should be declared as NOT NULL * because MySQL primary key columns cannot be NULL. */ -class mysql_platform extends AbstractMySQLPlatform +class phpbb_mysql_platform extends AbstractMySQLPlatform { /** * {@inheritDoc} diff --git a/phpBB/phpbb/db/middleware/oracle/phpbb_oracle_driver.php b/phpBB/phpbb/db/middleware/oracle/phpbb_oracle_driver.php new file mode 100644 index 0000000000..fc341a2243 --- /dev/null +++ b/phpBB/phpbb/db/middleware/oracle/phpbb_oracle_driver.php @@ -0,0 +1,41 @@ + + * @license GNU General Public License, version 2 (GPL-2.0) + * + * For full copyright and license information, please see + * the docs/CREDITS.txt file. + * + */ + +namespace phpbb\db\middleware\oracle; + +use Doctrine\DBAL\Connection as DoctrineConnection; +use Doctrine\DBAL\Driver\Middleware\AbstractDriverMiddleware; +use Doctrine\DBAL\Platforms\AbstractPlatform; + +/** + * Oracle Doctrine driver middleware. + * Makes use of phpBB's Oracle specific platform. + */ +class phpbb_oracle_driver extends AbstractDriverMiddleware +{ + /** + * {@inheritDoc} + */ + public function getSchemaManager(DoctrineConnection $conn, AbstractPlatform $platform) + { + return new phpbb_oracle_schema_manager($conn, $platform); + } + + /** + * {@inheritDoc} + */ + public function createDatabasePlatformForVersion($version) + { + return new phpbb_oracle_platform(); + } +} diff --git a/phpBB/phpbb/db/middleware/oracle/phpbb_oracle_middleware.php b/phpBB/phpbb/db/middleware/oracle/phpbb_oracle_middleware.php new file mode 100644 index 0000000000..be35ce963a --- /dev/null +++ b/phpBB/phpbb/db/middleware/oracle/phpbb_oracle_middleware.php @@ -0,0 +1,28 @@ + + * @license GNU General Public License, version 2 (GPL-2.0) + * + * For full copyright and license information, please see + * the docs/CREDITS.txt file. + * + */ + +namespace phpbb\db\middleware\oracle; + +use Doctrine\DBAL\Driver; + +/** + * Oracle Doctrine middleware. + * Makes use of phpBB's Oracle specific platform. + */ +class phpbb_oracle_middleware implements Driver\Middleware +{ + public function wrap(Driver $driver): Driver + { + return new phpbb_oracle_driver($driver); + } +} diff --git a/phpBB/phpbb/db/doctrine/oracle_platform.php b/phpBB/phpbb/db/middleware/oracle/phpbb_oracle_platform.php similarity index 98% rename from phpBB/phpbb/db/doctrine/oracle_platform.php rename to phpBB/phpbb/db/middleware/oracle/phpbb_oracle_platform.php index 7c011e6e77..efafcd768d 100644 --- a/phpBB/phpbb/db/doctrine/oracle_platform.php +++ b/phpBB/phpbb/db/middleware/oracle/phpbb_oracle_platform.php @@ -11,7 +11,7 @@ * */ -namespace phpbb\db\doctrine; +namespace phpbb\db\middleware\oracle; use Doctrine\DBAL\Platforms\OraclePlatform; use Doctrine\DBAL\Schema\Identifier; @@ -21,7 +21,7 @@ use Doctrine\DBAL\Schema\Table; /** * Oracle specific schema restrictions for BC. */ -class oracle_platform extends OraclePlatform +class phpbb_oracle_platform extends OraclePlatform { /** * {@inheritDoc} diff --git a/phpBB/phpbb/db/doctrine/oci8/schema_manager.php b/phpBB/phpbb/db/middleware/oracle/phpbb_oracle_schema_manager.php similarity index 90% rename from phpBB/phpbb/db/doctrine/oci8/schema_manager.php rename to phpBB/phpbb/db/middleware/oracle/phpbb_oracle_schema_manager.php index c0b2caea1d..078630eb8a 100644 --- a/phpBB/phpbb/db/doctrine/oci8/schema_manager.php +++ b/phpBB/phpbb/db/middleware/oracle/phpbb_oracle_schema_manager.php @@ -11,14 +11,14 @@ * */ -namespace phpbb\db\doctrine\oci8; +namespace phpbb\db\middleware\oracle; use Doctrine\DBAL\Platforms\OraclePlatform; use Doctrine\DBAL\Schema\AbstractSchemaManager; use Doctrine\DBAL\Schema\OracleSchemaManager; use Doctrine\DBAL\Schema\Table; -class schema_manager extends OracleSchemaManager +class phpbb_oracle_schema_manager extends OracleSchemaManager { /** * {@inheritdoc} diff --git a/phpBB/phpbb/db/middleware/postgresql/phpbb_postgresql_driver.php b/phpBB/phpbb/db/middleware/postgresql/phpbb_postgresql_driver.php new file mode 100644 index 0000000000..9464825c78 --- /dev/null +++ b/phpBB/phpbb/db/middleware/postgresql/phpbb_postgresql_driver.php @@ -0,0 +1,31 @@ + + * @license GNU General Public License, version 2 (GPL-2.0) + * + * For full copyright and license information, please see + * the docs/CREDITS.txt file. + * + */ + +namespace phpbb\db\middleware\postgresql; + +use Doctrine\DBAL\Driver\Middleware\AbstractDriverMiddleware; + +/** + * PostgreSQL Doctrine driver middleware. + * Makes use of phpBB's PostgreSQL specific platform. + */ +class phpbb_postgresql_driver extends AbstractDriverMiddleware +{ + /** + * {@inheritDoc} + */ + public function createDatabasePlatformForVersion($version) + { + return new phpbb_postgresql_platform(); + } +} diff --git a/phpBB/phpbb/db/middleware/postgresql/phpbb_postgresql_middleware.php b/phpBB/phpbb/db/middleware/postgresql/phpbb_postgresql_middleware.php new file mode 100644 index 0000000000..31d3fbcb20 --- /dev/null +++ b/phpBB/phpbb/db/middleware/postgresql/phpbb_postgresql_middleware.php @@ -0,0 +1,28 @@ + + * @license GNU General Public License, version 2 (GPL-2.0) + * + * For full copyright and license information, please see + * the docs/CREDITS.txt file. + * + */ + +namespace phpbb\db\middleware\postgresql; + +use Doctrine\DBAL\Driver; + +/** + * PostgreSQL Doctrine middleware. + * Makes use of phpBB's PostgreSQL specific platform. + */ +class phpbb_postgresql_middleware implements Driver\Middleware +{ + public function wrap(Driver $driver): Driver + { + return new phpbb_postgresql_driver($driver); + } +} diff --git a/phpBB/phpbb/db/doctrine/postgresql_platform.php b/phpBB/phpbb/db/middleware/postgresql/phpbb_postgresql_platform.php similarity index 97% rename from phpBB/phpbb/db/doctrine/postgresql_platform.php rename to phpBB/phpbb/db/middleware/postgresql/phpbb_postgresql_platform.php index d67b2439b2..7ed3508ba0 100644 --- a/phpBB/phpbb/db/doctrine/postgresql_platform.php +++ b/phpBB/phpbb/db/middleware/postgresql/phpbb_postgresql_platform.php @@ -11,7 +11,7 @@ * */ -namespace phpbb\db\doctrine; +namespace phpbb\db\middleware\postgresql; use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Platforms\PostgreSQLPlatform; @@ -31,7 +31,7 @@ use Doctrine\DBAL\Types\Type; * to stay compatible with the existing DB we have to change its * naming and not ours. */ -class postgresql_platform extends PostgreSQLPlatform +class phpbb_postgresql_platform extends PostgreSQLPlatform { /** * {@inheritdoc} diff --git a/phpBB/phpbb/db/middleware/sqlsrv/phpbb_sqlsrv_driver.php b/phpBB/phpbb/db/middleware/sqlsrv/phpbb_sqlsrv_driver.php new file mode 100644 index 0000000000..ba7ec877f6 --- /dev/null +++ b/phpBB/phpbb/db/middleware/sqlsrv/phpbb_sqlsrv_driver.php @@ -0,0 +1,31 @@ + + * @license GNU General Public License, version 2 (GPL-2.0) + * + * For full copyright and license information, please see + * the docs/CREDITS.txt file. + * + */ + +namespace phpbb\db\middleware\sqlsrv; + +use Doctrine\DBAL\Driver\Middleware\AbstractDriverMiddleware; + +/** + * Microsoft SQL server Doctrine driver middleware. + * Makes use of phpBB's SQL Server specific platform. + */ +class phpbb_sqlsrv_driver extends AbstractDriverMiddleware +{ + /** + * {@inheritDoc} + */ + public function createDatabasePlatformForVersion($version) + { + return new phpbb_sqlsrv_platform(); + } +} diff --git a/phpBB/phpbb/db/middleware/sqlsrv/phpbb_sqlsrv_middleware.php b/phpBB/phpbb/db/middleware/sqlsrv/phpbb_sqlsrv_middleware.php new file mode 100644 index 0000000000..a5603fd422 --- /dev/null +++ b/phpBB/phpbb/db/middleware/sqlsrv/phpbb_sqlsrv_middleware.php @@ -0,0 +1,28 @@ + + * @license GNU General Public License, version 2 (GPL-2.0) + * + * For full copyright and license information, please see + * the docs/CREDITS.txt file. + * + */ + +namespace phpbb\db\middleware\sqlsrv; + +use Doctrine\DBAL\Driver; + +/** + * Microsoft SQL server Doctrine middleware. + * Makes use of phpBB's SQL Server specific platform. + */ +class phpbb_sqlsrv_middleware implements Driver\Middleware +{ + public function wrap(Driver $driver): Driver + { + return new phpbb_sqlsrv_driver($driver); + } +} diff --git a/phpBB/phpbb/db/doctrine/sqlsrv_platform.php b/phpBB/phpbb/db/middleware/sqlsrv/phpbb_sqlsrv_platform.php similarity index 97% rename from phpBB/phpbb/db/doctrine/sqlsrv_platform.php rename to phpBB/phpbb/db/middleware/sqlsrv/phpbb_sqlsrv_platform.php index ca2a9dd7e6..896cb72643 100644 --- a/phpBB/phpbb/db/doctrine/sqlsrv_platform.php +++ b/phpBB/phpbb/db/middleware/sqlsrv/phpbb_sqlsrv_platform.php @@ -11,7 +11,7 @@ * */ -namespace phpbb\db\doctrine; +namespace phpbb\db\middleware\sqlsrv; use Doctrine\DBAL\Platforms\SQLServerPlatform; use Doctrine\DBAL\Schema\Identifier; @@ -20,7 +20,7 @@ use Doctrine\DBAL\Schema\TableDiff; /** * SQLServer specific schema restrictions for BC. */ -class sqlsrv_platform extends SQLServerPlatform +class phpbb_sqlsrv_platform extends SQLServerPlatform { /** * {@inheritDoc}