From e1f3abf7a583669ba1fed703365de9e12a76e22c Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 26 Nov 2014 12:38:24 +0100 Subject: [PATCH] Correctly namespace and autoload DatabaseException --- lib/private/databaseexception.php | 23 ++++++++++++++++++++ lib/private/db.php | 36 ++++++++++--------------------- lib/private/group/database.php | 2 +- lib/private/server.php | 2 +- tests/lib/testcase.php | 4 ++-- 5 files changed, 38 insertions(+), 29 deletions(-) create mode 100644 lib/private/databaseexception.php diff --git a/lib/private/databaseexception.php b/lib/private/databaseexception.php new file mode 100644 index 0000000000..1135621ead --- /dev/null +++ b/lib/private/databaseexception.php @@ -0,0 +1,23 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC; + +class DatabaseException extends \Exception { + private $query; + + //FIXME getQuery seems to be unused, maybe use parent constructor with $message, $code and $previous + public function __construct($message, $query = null){ + parent::__construct($message); + $this->query = $query; + } + + public function getQuery() { + return $this->query; + } +} diff --git a/lib/private/db.php b/lib/private/db.php index b820281b8a..f801513368 100644 --- a/lib/private/db.php +++ b/lib/private/db.php @@ -22,20 +22,6 @@ define('MDB2_SCHEMA_DUMP_STRUCTURE', '1'); -class DatabaseException extends Exception { - private $query; - - //FIXME getQuery seems to be unused, maybe use parent constructor with $message, $code and $previous - public function __construct($message, $query = null){ - parent::__construct($message); - $this->query = $query; - } - - public function getQuery() { - return $this->query; - } -} - /** * This class manages the access to the database. It basically is a wrapper for * Doctrine with some adaptions. @@ -65,7 +51,7 @@ class OC_DB { * @param int $limit * @param int $offset * @param bool $isManipulation - * @throws DatabaseException + * @throws \OC\DatabaseException * @return OC_DB_StatementWrapper prepared SQL query * * SQL query via Doctrine prepare(), needs to be execute()'d! @@ -82,7 +68,7 @@ class OC_DB { try { $result =$connection->prepare($query, $limit, $offset); } catch (\Doctrine\DBAL\DBALException $e) { - throw new \DatabaseException($e->getMessage(), $query); + throw new \OC\DatabaseException($e->getMessage(), $query); } // differentiate between query and manipulation $result = new OC_DB_StatementWrapper($result, $isManipulation); @@ -123,7 +109,7 @@ class OC_DB { * .. or a simple sql query string * @param array $parameters * @return OC_DB_StatementWrapper - * @throws DatabaseException + * @throws \OC\DatabaseException */ static public function executeAudited( $stmt, array $parameters = null) { if (is_string($stmt)) { @@ -132,7 +118,7 @@ class OC_DB { // TODO try to convert LIMIT OFFSET notation to parameters, see fixLimitClauseForMSSQL $message = 'LIMIT and OFFSET are forbidden for portability reasons,' . ' pass an array with \'limit\' and \'offset\' instead'; - throw new DatabaseException($message); + throw new \OC\DatabaseException($message); } $stmt = array('sql' => $stmt, 'limit' => null, 'offset' => null); } @@ -140,7 +126,7 @@ class OC_DB { // convert to prepared statement if ( ! array_key_exists('sql', $stmt) ) { $message = 'statement array must at least contain key \'sql\''; - throw new DatabaseException($message); + throw new \OC\DatabaseException($message); } if ( ! array_key_exists('limit', $stmt) ) { $stmt['limit'] = null; @@ -160,7 +146,7 @@ class OC_DB { } else { $message = 'Expected a prepared statement or array got ' . gettype($stmt); } - throw new DatabaseException($message); + throw new \OC\DatabaseException($message); } return $result; } @@ -169,7 +155,7 @@ class OC_DB { * gets last value of autoincrement * @param string $table The optional table name (will replace *PREFIX*) and add sequence suffix * @return string id - * @throws DatabaseException + * @throws \OC\DatabaseException * * \Doctrine\DBAL\Connection lastInsertId * @@ -312,7 +298,7 @@ class OC_DB { * @param mixed $result * @param string $message * @return void - * @throws DatabaseException + * @throws \OC\DatabaseException */ public static function raiseExceptionOnError($result, $message = null) { if(self::isError($result)) { @@ -321,7 +307,7 @@ class OC_DB { } else { $message .= ', Root cause:' . self::getErrorMessage($result); } - throw new DatabaseException($message, self::getErrorCode($result)); + throw new \OC\DatabaseException($message, self::getErrorCode($result)); } } @@ -345,7 +331,7 @@ class OC_DB { * * @param string $table * @return bool - * @throws DatabaseException + * @throws \OC\DatabaseException */ public static function tableExists($table) { @@ -381,7 +367,7 @@ class OC_DB { $result = \OC_DB::executeAudited($sql, array($table)); break; default: - throw new DatabaseException("Unknown database type: $dbType"); + throw new \OC\DatabaseException("Unknown database type: $dbType"); } return $result->fetchOne() === $table; diff --git a/lib/private/group/database.php b/lib/private/group/database.php index 6bad55c8d5..2069e99599 100644 --- a/lib/private/group/database.php +++ b/lib/private/group/database.php @@ -220,7 +220,7 @@ class OC_Group_Database extends OC_Group_Backend { * @param string $gid * @param string $search * @return int|false - * @throws DatabaseException + * @throws \OC\DatabaseException */ public function countUsersInGroup($gid, $search = '') { $stmt = OC_DB::prepare('SELECT COUNT(`uid`) AS `count` FROM `*PREFIX*group_user` WHERE `gid` = ? AND `uid` LIKE ?'); diff --git a/lib/private/server.php b/lib/private/server.php index c413ee8bf6..cd57d41ce5 100644 --- a/lib/private/server.php +++ b/lib/private/server.php @@ -205,7 +205,7 @@ class Server extends SimpleContainer implements IServerContainer { $factory = new \OC\DB\ConnectionFactory(); $type = $c->getConfig()->getSystemValue('dbtype', 'sqlite'); if (!$factory->isValidType($type)) { - throw new \DatabaseException('Invalid database type'); + throw new \OC\DatabaseException('Invalid database type'); } $connectionParams = $factory->createConnectionParams($c->getConfig()); $connection = $factory->getConnection($type, $connectionParams); diff --git a/tests/lib/testcase.php b/tests/lib/testcase.php index e6f5ca71da..934bc5fa8f 100644 --- a/tests/lib/testcase.php +++ b/tests/lib/testcase.php @@ -64,7 +64,7 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase { /** * Remove all entries from the storages table - * @throws \DatabaseException + * @throws \OC\DatabaseException */ static protected function tearDownAfterClassCleanStorages() { $sql = 'DELETE FROM `*PREFIX*storages`'; @@ -74,7 +74,7 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase { /** * Remove all entries from the filecache table - * @throws \DatabaseException + * @throws \OC\DatabaseException */ static protected function tearDownAfterClassCleanFileCache() { $sql = 'DELETE FROM `*PREFIX*filecache`';