From bc3da3a8f56de496b35add326b7a9e12391b4e3d Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 14 Dec 2016 11:42:16 +0100 Subject: [PATCH] Remove IDb interface which was deprecated for 3 years already Signed-off-by: Joas Schilling --- .../lib/Db/BackupCodeMapper.php | 4 +- lib/composer/composer/autoload_classmap.php | 2 - lib/composer/composer/autoload_static.php | 2 - lib/private/AppFramework/Db/Db.php | 314 ------------------ .../DependencyInjection/DIContainer.php | 4 - lib/private/Server.php | 14 - lib/public/AppFramework/Db/Mapper.php | 16 +- lib/public/IDb.php | 54 --- lib/public/IServerContainer.php | 8 - tests/lib/ServerTest.php | 2 - 10 files changed, 3 insertions(+), 417 deletions(-) delete mode 100644 lib/private/AppFramework/Db/Db.php delete mode 100644 lib/public/IDb.php diff --git a/apps/twofactor_backupcodes/lib/Db/BackupCodeMapper.php b/apps/twofactor_backupcodes/lib/Db/BackupCodeMapper.php index 8b56724fce..f64e2e9e60 100644 --- a/apps/twofactor_backupcodes/lib/Db/BackupCodeMapper.php +++ b/apps/twofactor_backupcodes/lib/Db/BackupCodeMapper.php @@ -23,12 +23,12 @@ namespace OCA\TwoFactorBackupCodes\Db; use OCP\AppFramework\Db\Mapper; use OCP\DB\QueryBuilder\IQueryBuilder; -use OCP\IDb; +use OCP\IDBConnection; use OCP\IUser; class BackupCodeMapper extends Mapper { - public function __construct(IDb $db) { + public function __construct(IDBConnection $db) { parent::__construct($db, 'twofactor_backup_codes'); } diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index 19f995e3b6..272f7588d1 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -164,7 +164,6 @@ return array( 'OCP\\IDBConnection' => $baseDir . '/lib/public/IDBConnection.php', 'OCP\\IDateTimeFormatter' => $baseDir . '/lib/public/IDateTimeFormatter.php', 'OCP\\IDateTimeZone' => $baseDir . '/lib/public/IDateTimeZone.php', - 'OCP\\IDb' => $baseDir . '/lib/public/IDb.php', 'OCP\\IEventSource' => $baseDir . '/lib/public/IEventSource.php', 'OCP\\IGroup' => $baseDir . '/lib/public/IGroup.php', 'OCP\\IGroupManager' => $baseDir . '/lib/public/IGroupManager.php', @@ -266,7 +265,6 @@ return array( 'OC\\AppConfig' => $baseDir . '/lib/private/AppConfig.php', 'OC\\AppFramework\\App' => $baseDir . '/lib/private/AppFramework/App.php', 'OC\\AppFramework\\Core\\API' => $baseDir . '/lib/private/AppFramework/Core/API.php', - 'OC\\AppFramework\\Db\\Db' => $baseDir . '/lib/private/AppFramework/Db/Db.php', 'OC\\AppFramework\\DependencyInjection\\DIContainer' => $baseDir . '/lib/private/AppFramework/DependencyInjection/DIContainer.php', 'OC\\AppFramework\\Http' => $baseDir . '/lib/private/AppFramework/Http.php', 'OC\\AppFramework\\Http\\Dispatcher' => $baseDir . '/lib/private/AppFramework/Http/Dispatcher.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index d5fe21da19..98f97d5e51 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -194,7 +194,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\IDBConnection' => __DIR__ . '/../../..' . '/lib/public/IDBConnection.php', 'OCP\\IDateTimeFormatter' => __DIR__ . '/../../..' . '/lib/public/IDateTimeFormatter.php', 'OCP\\IDateTimeZone' => __DIR__ . '/../../..' . '/lib/public/IDateTimeZone.php', - 'OCP\\IDb' => __DIR__ . '/../../..' . '/lib/public/IDb.php', 'OCP\\IEventSource' => __DIR__ . '/../../..' . '/lib/public/IEventSource.php', 'OCP\\IGroup' => __DIR__ . '/../../..' . '/lib/public/IGroup.php', 'OCP\\IGroupManager' => __DIR__ . '/../../..' . '/lib/public/IGroupManager.php', @@ -296,7 +295,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\AppConfig' => __DIR__ . '/../../..' . '/lib/private/AppConfig.php', 'OC\\AppFramework\\App' => __DIR__ . '/../../..' . '/lib/private/AppFramework/App.php', 'OC\\AppFramework\\Core\\API' => __DIR__ . '/../../..' . '/lib/private/AppFramework/Core/API.php', - 'OC\\AppFramework\\Db\\Db' => __DIR__ . '/../../..' . '/lib/private/AppFramework/Db/Db.php', 'OC\\AppFramework\\DependencyInjection\\DIContainer' => __DIR__ . '/../../..' . '/lib/private/AppFramework/DependencyInjection/DIContainer.php', 'OC\\AppFramework\\Http' => __DIR__ . '/../../..' . '/lib/private/AppFramework/Http.php', 'OC\\AppFramework\\Http\\Dispatcher' => __DIR__ . '/../../..' . '/lib/private/AppFramework/Http/Dispatcher.php', diff --git a/lib/private/AppFramework/Db/Db.php b/lib/private/AppFramework/Db/Db.php deleted file mode 100644 index 5aacdc517a..0000000000 --- a/lib/private/AppFramework/Db/Db.php +++ /dev/null @@ -1,314 +0,0 @@ - - * @author Joas Schilling - * @author Morris Jobke - * @author Robin Appelman - * @author Robin McCorkell - * @author Thomas Müller - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OC\AppFramework\Db; - -use OCP\DB\QueryBuilder\IQueryBuilder; -use OCP\IDb; -use OCP\IDBConnection; -use OCP\PreConditionNotMetException; -use Doctrine\DBAL\Platforms\MySqlPlatform; - -/** - * @deprecated use IDBConnection directly, will be removed in ownCloud 10 - * Small Facade for being able to inject the database connection for tests - */ -class Db implements IDb { - /** - * @var IDBConnection - */ - protected $connection; - - /** - * @param IDBConnection $connection - */ - public function __construct(IDBConnection $connection) { - $this->connection = $connection; - } - - /** - * Gets the ExpressionBuilder for the connection. - * - * @return \OCP\DB\QueryBuilder\IQueryBuilder - */ - public function getQueryBuilder() { - return $this->connection->getQueryBuilder(); - } - - /** - * Used to abstract the ownCloud database access away - * - * @param string $sql the sql query with ? placeholder for params - * @param int $limit the maximum number of rows - * @param int $offset from which row we want to start - * @deprecated use prepare instead, will be removed in ownCloud 10 - * @return \OC_DB_StatementWrapper prepared SQL query - */ - public function prepareQuery($sql, $limit = null, $offset = null) { - $isManipulation = \OC_DB::isManipulation($sql); - $statement = $this->connection->prepare($sql, $limit, $offset); - return new \OC_DB_StatementWrapper($statement, $isManipulation); - } - - - /** - * Used to get the id of the just inserted element - * - * @deprecated use lastInsertId instead, will be removed in ownCloud 10 - * @param string $tableName the name of the table where we inserted the item - * @return int the id of the inserted element - */ - public function getInsertId($tableName) { - return $this->connection->lastInsertId($tableName); - } - - /** - * Used to abstract the ownCloud database access away - * @param string $sql the sql query with ? placeholder for params - * @param int $limit the maximum number of rows - * @param int $offset from which row we want to start - * @return \Doctrine\DBAL\Driver\Statement The prepared statement. - */ - public function prepare($sql, $limit=null, $offset=null) { - return $this->connection->prepare($sql, $limit, $offset); - } - - /** - * Executes an, optionally parameterized, SQL query. - * - * If the query is parameterized, a prepared statement is used. - * If an SQLLogger is configured, the execution is logged. - * - * @param string $query The SQL query to execute. - * @param string[] $params The parameters to bind to the query, if any. - * @param array $types The types the previous parameters are in. - * @return \Doctrine\DBAL\Driver\Statement The executed statement. - */ - public function executeQuery($query, array $params = array(), $types = array()) { - return $this->connection->executeQuery($query, $params, $types); - } - - /** - * Executes an SQL INSERT/UPDATE/DELETE query with the given parameters - * and returns the number of affected rows. - * - * This method supports PDO binding types as well as DBAL mapping types. - * - * @param string $query The SQL query. - * @param array $params The query parameters. - * @param array $types The parameter types. - * @return integer The number of affected rows. - */ - public function executeUpdate($query, array $params = array(), array $types = array()) { - return $this->connection->executeUpdate($query, $params, $types); - } - - /** - * Used to get the id of the just inserted element - * @param string $table the name of the table where we inserted the item - * @return int the id of the inserted element - */ - public function lastInsertId($table = null) { - return $this->connection->lastInsertId($table); - } - - /** - * Insert a row if the matching row does not exists. - * - * @param string $table The table name (will replace *PREFIX* with the actual prefix) - * @param array $input data that should be inserted into the table (column name => value) - * @param array|null $compare List of values that should be checked for "if not exists" - * If this is null or an empty array, all keys of $input will be compared - * Please note: text fields (clob) must not be used in the compare array - * @return int number of inserted rows - * @throws \Doctrine\DBAL\DBALException - */ - public function insertIfNotExist($table, $input, array $compare = null) { - return $this->connection->insertIfNotExist($table, $input, $compare); - } - - /** - * Insert or update a row value - * - * @param string $table - * @param array $keys (column name => value) - * @param array $values (column name => value) - * @param array $updatePreconditionValues ensure values match preconditions (column name => value) - * @return int number of new rows - * @throws \Doctrine\DBAL\DBALException - * @throws PreConditionNotMetException - */ - public function setValues($table, array $keys, array $values, array $updatePreconditionValues = []) { - return $this->connection->setValues($table, $keys, $values, $updatePreconditionValues); - } - - /** - * @inheritdoc - */ - public function lockTable($tableName) { - $this->connection->lockTable($tableName); - } - - /** - * @inheritdoc - */ - public function unlockTable() { - $this->connection->unlockTable(); - } - - /** - * Start a transaction - */ - public function beginTransaction() { - $this->connection->beginTransaction(); - } - - /** - * Check if a transaction is active - * - * @return bool - */ - public function inTransaction() { - return $this->connection->inTransaction(); - } - - /** - * Commit the database changes done during a transaction that is in progress - */ - public function commit() { - $this->connection->commit(); - } - - /** - * Rollback the database changes done during a transaction that is in progress - */ - public function rollBack() { - $this->connection->rollBack(); - } - - /** - * Gets the error code and message as a string for logging - * @return string - */ - public function getError() { - return $this->connection->getError(); - } - - /** - * Fetch the SQLSTATE associated with the last database operation. - * - * @return integer The last error code. - */ - public function errorCode() { - return $this->connection->errorCode(); - } - - /** - * Fetch extended error information associated with the last database operation. - * - * @return array The last error information. - */ - public function errorInfo() { - return $this->connection->errorInfo(); - } - - /** - * Establishes the connection with the database. - * - * @return bool - */ - public function connect() { - return $this->connection->connect(); - } - - /** - * Close the database connection - */ - public function close() { - $this->connection->close(); - } - - /** - * Quotes a given input parameter. - * - * @param mixed $input Parameter to be quoted. - * @param int $type Type of the parameter. - * @return string The quoted parameter. - */ - public function quote($input, $type = IQueryBuilder::PARAM_STR) { - return $this->connection->quote($input, $type); - } - - /** - * Gets the DatabasePlatform instance that provides all the metadata about - * the platform this driver connects to. - * - * @return \Doctrine\DBAL\Platforms\AbstractPlatform The database platform. - */ - public function getDatabasePlatform() { - return $this->connection->getDatabasePlatform(); - } - - /** - * Drop a table from the database if it exists - * - * @param string $table table name without the prefix - */ - public function dropTable($table) { - $this->connection->dropTable($table); - } - - /** - * Check if a table exists - * - * @param string $table table name without the prefix - * @return bool - */ - public function tableExists($table) { - return $this->connection->tableExists($table); - } - - /** - * Espace a parameter to be used in a LIKE query - * - * @param string $param - * @return string - */ - public function escapeLikeParameter($param) { - return $this->connection->escapeLikeParameter($param); - } - - /** - * Check whether or not the current database support 4byte wide unicode - * - * @return bool - * @since 11.0.0 - */ - public function supports4ByteText() { - return $this->connection->supports4ByteText(); - } -} diff --git a/lib/private/AppFramework/DependencyInjection/DIContainer.php b/lib/private/AppFramework/DependencyInjection/DIContainer.php index 148a15172a..ac42960f54 100644 --- a/lib/private/AppFramework/DependencyInjection/DIContainer.php +++ b/lib/private/AppFramework/DependencyInjection/DIContainer.php @@ -134,10 +134,6 @@ class DIContainer extends SimpleContainer implements IAppContainer { return $this->getServer()->getDateTimeFormatter(); }); - $this->registerService('OCP\\IDb', function($c) { - return $this->getServer()->getDb(); - }); - $this->registerService('OCP\\IDBConnection', function($c) { return $this->getServer()->getDatabaseConnection(); }); diff --git a/lib/private/Server.php b/lib/private/Server.php index 2c0aac9b43..b2fa9691b1 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -45,7 +45,6 @@ use bantu\IniGetWrapper\IniGetWrapper; use OC\App\AppStore\Fetcher\AppFetcher; use OC\App\AppStore\Fetcher\CategoryFetcher; use OC\AppFramework\Http\Request; -use OC\AppFramework\Db\Db; use OC\AppFramework\Utility\TimeFactory; use OC\Command\AsyncBus; use OC\Diagnostics\EventLogger; @@ -470,9 +469,6 @@ class Server extends ServerContainer implements IServerContainer { $connection->getConfiguration()->setSQLLogger($c->getQueryLogger()); return $connection; }); - $this->registerService('Db', function (Server $c) { - return new Db($c->getDatabaseConnection()); - }); $this->registerService('HTTPHelper', function (Server $c) { $config = $c->getConfig(); return new HTTPHelper( @@ -1198,16 +1194,6 @@ class Server extends ServerContainer implements IServerContainer { return $this->query('CredentialsManager'); } - /** - * Returns an instance of the db facade - * - * @deprecated use getDatabaseConnection, will be removed in ownCloud 10 - * @return \OCP\IDb - */ - public function getDb() { - return $this->query('Db'); - } - /** * Returns an instance of the HTTP helper class * diff --git a/lib/public/AppFramework/Db/Mapper.php b/lib/public/AppFramework/Db/Mapper.php index aa3d9cdde3..611791a436 100644 --- a/lib/public/AppFramework/Db/Mapper.php +++ b/lib/public/AppFramework/Db/Mapper.php @@ -28,7 +28,6 @@ namespace OCP\AppFramework\Db; use OCP\IDBConnection; -use OCP\IDb; /** @@ -229,11 +228,7 @@ abstract class Mapper { * @since 7.0.0 */ protected function execute($sql, array $params=[], $limit=null, $offset=null){ - if ($this->db instanceof IDb) { - $query = $this->db->prepareQuery($sql, $limit, $offset); - } else { - $query = $this->db->prepare($sql, $limit, $offset); - } + $query = $this->db->prepare($sql, $limit, $offset); if ($this->isAssocArray($params)) { foreach ($params as $key => $param) { @@ -251,15 +246,6 @@ abstract class Mapper { $result = $query->execute(); - // this is only for backwards compatibility reasons and can be removed - // in owncloud 10. IDb returns a StatementWrapper from execute, PDO, - // Doctrine and IDbConnection don't so this needs to be done in order - // to stay backwards compatible for the things that rely on the - // StatementWrapper being returned - if ($result instanceof \OC_DB_StatementWrapper) { - return $result; - } - return $query; } diff --git a/lib/public/IDb.php b/lib/public/IDb.php deleted file mode 100644 index bb04cf540f..0000000000 --- a/lib/public/IDb.php +++ /dev/null @@ -1,54 +0,0 @@ - - * @author Morris Jobke - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -namespace OCP; - - -/** - * Small Facade for being able to inject the database connection for tests - * @since 7.0.0 - extends IDBConnection was added in 8.1.0 - */ -interface IDb extends IDBConnection { - - - /** - * Used to abstract the owncloud database access away - * @param string $sql the sql query with ? placeholder for params - * @param int $limit the maximum number of rows - * @param int $offset from which row we want to start - * @return \OC_DB_StatementWrapper prepared SQL query - * @since 7.0.0 - */ - public function prepareQuery($sql, $limit=null, $offset=null); - - - /** - * Used to get the id of the just inserted element - * @param string $tableName the name of the table where we inserted the item - * @return int the id of the inserted element - * @since 7.0.0 - */ - public function getInsertId($tableName); - - -} diff --git a/lib/public/IServerContainer.php b/lib/public/IServerContainer.php index 354e39bd8f..87628be01f 100644 --- a/lib/public/IServerContainer.php +++ b/lib/public/IServerContainer.php @@ -191,14 +191,6 @@ interface IServerContainer { */ public function getCredentialsManager(); - /** - * Returns an instance of the db facade - * @deprecated 8.1.0 use getDatabaseConnection, will be removed in ownCloud 10 - * @return \OCP\IDb - * @since 7.0.0 - */ - public function getDb(); - /** * Returns the app config manager * diff --git a/tests/lib/ServerTest.php b/tests/lib/ServerTest.php index 02fccee628..9c375dd654 100644 --- a/tests/lib/ServerTest.php +++ b/tests/lib/ServerTest.php @@ -79,8 +79,6 @@ class ServerTest extends \Test\TestCase { ['DateTimeFormatter', '\OCP\IDateTimeFormatter'], ['DateTimeZone', '\OC\DateTimeZone'], ['DateTimeZone', '\OCP\IDateTimeZone'], - ['Db', '\OC\AppFramework\Db\Db'], - ['Db', '\OCP\IDb'], ['EncryptionFileHelper', '\OC\Encryption\File'], ['EncryptionFileHelper', '\OCP\Encryption\IFile'],