From: Aaron Schulz Date: Thu, 22 Sep 2016 19:12:01 +0000 (-0700) Subject: Split up DBError classes into their own files X-Git-Tag: 1.31.0-rc.0~5387^2 X-Git-Url: http://git.cyclocoop.org/%22%24script/%7B%7B%20url_for%28?a=commitdiff_plain;h=aa9d1c91b62fa43dcf47347fb8c4095eeeb760ff;p=lhc%2Fweb%2Fwiklou.git Split up DBError classes into their own files Change-Id: I671f1a88f0192a5199cfc9c6d7fbde1bff5c4ac8 --- diff --git a/autoload.php b/autoload.php index 433f907d09..018e85eb9a 100644 --- a/autoload.php +++ b/autoload.php @@ -299,22 +299,22 @@ $wgAutoloadLocalClasses = [ 'CsvStatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php', 'CurlHttpRequest' => __DIR__ . '/includes/HttpFunctions.php', 'DBAccessBase' => __DIR__ . '/includes/dao/DBAccessBase.php', - 'DBAccessError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', + 'DBAccessError' => __DIR__ . '/includes/libs/rdbms/exception/DBAccessError.php', 'DBAccessObjectUtils' => __DIR__ . '/includes/dao/DBAccessObjectUtils.php', 'DBConnRef' => __DIR__ . '/includes/libs/rdbms/database/DBConnRef.php', - 'DBConnectionError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', + 'DBConnectionError' => __DIR__ . '/includes/libs/rdbms/exception/DBConnectionError.php', 'DBError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', - 'DBExpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', + 'DBExpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBExpectedError.php', 'DBFileJournal' => __DIR__ . '/includes/filebackend/filejournal/DBFileJournal.php', 'DBLockManager' => __DIR__ . '/includes/filebackend/lockmanager/DBLockManager.php', 'DBMasterPos' => __DIR__ . '/includes/libs/rdbms/database/position/DBMasterPos.php', - 'DBQueryError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', - 'DBReadOnlyError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', - 'DBReplicationWaitError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', + 'DBQueryError' => __DIR__ . '/includes/libs/rdbms/exception/DBQueryError.php', + 'DBReadOnlyError' => __DIR__ . '/includes/libs/rdbms/exception/DBReadOnlyError.php', + 'DBReplicationWaitError' => __DIR__ . '/includes/libs/rdbms/exception/DBReplicationWaitError.php', 'DBSiteStore' => __DIR__ . '/includes/site/DBSiteStore.php', - 'DBTransactionError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', - 'DBTransactionSizeError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', - 'DBUnexpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', + 'DBTransactionError' => __DIR__ . '/includes/libs/rdbms/exception/DBTransactionError.php', + 'DBTransactionSizeError' => __DIR__ . '/includes/libs/rdbms/exception/DBTransactionSizeError.php', + 'DBUnexpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBUnexpectedError.php', 'DataUpdate' => __DIR__ . '/includes/deferred/DataUpdate.php', 'Database' => __DIR__ . '/includes/libs/rdbms/database/Database.php', 'DatabaseBase' => __DIR__ . '/includes/libs/rdbms/database/DatabaseBase.php', diff --git a/includes/libs/rdbms/exception/DBAccessError.php b/includes/libs/rdbms/exception/DBAccessError.php new file mode 100644 index 0000000000..7971dbaa93 --- /dev/null +++ b/includes/libs/rdbms/exception/DBAccessError.php @@ -0,0 +1,32 @@ +params = $params; - } - - public function getKey() { - return 'databaseerror-text'; - } - - public function getParams() { - return $this->params; - } -} - -/** - * @ingroup Database - */ -class DBConnectionError extends DBExpectedError { - /** - * @param IDatabase $db Object throwing the error - * @param string $error Error text - */ - function __construct( IDatabase $db = null, $error = 'unknown error' ) { - $msg = 'Cannot access the database'; - if ( trim( $error ) != '' ) { - $msg .= ": $error"; - } - - parent::__construct( $db, $msg ); - } -} - -/** - * @ingroup Database - */ -class DBQueryError extends DBExpectedError { - /** @var string */ - public $error; - /** @var integer */ - public $errno; - /** @var string */ - public $sql; - /** @var string */ - public $fname; - - /** - * @param IDatabase $db - * @param string $error - * @param int|string $errno - * @param string $sql - * @param string $fname - */ - function __construct( IDatabase $db, $error, $errno, $sql, $fname ) { - if ( $db instanceof DatabaseBase && $db->wasConnectionError( $errno ) ) { - $message = "A connection error occured. \n" . - "Query: $sql\n" . - "Function: $fname\n" . - "Error: $errno $error\n"; - } else { - $message = "A database query error has occurred. Did you forget to run " . - "your application's database schema updater after upgrading? \n" . - "Query: $sql\n" . - "Function: $fname\n" . - "Error: $errno $error\n"; - } - parent::__construct( $db, $message ); - - $this->error = $error; - $this->errno = $errno; - $this->sql = $sql; - $this->fname = $fname; - } -} - -/** - * @ingroup Database - */ -class DBReadOnlyError extends DBExpectedError { -} - -/** - * @ingroup Database - */ -class DBTransactionError extends DBExpectedError { -} - -/** - * @ingroup Database - */ -class DBTransactionSizeError extends DBTransactionError { - function getKey() { - return 'transaction-duration-limit-exceeded'; - } -} - -/** - * Exception class for replica DB wait timeouts - * @ingroup Database - */ -class DBReplicationWaitError extends DBExpectedError { -} - -/** - * @ingroup Database - */ -class DBUnexpectedError extends DBError { -} - -/** - * Exception class for attempted DB access - * @ingroup Database - */ -class DBAccessError extends DBUnexpectedError { - public function __construct() { - parent::__construct( "Access to the database has been disabled." ); - } -} - diff --git a/includes/libs/rdbms/exception/DBExpectedError.php b/includes/libs/rdbms/exception/DBExpectedError.php new file mode 100644 index 0000000000..9e10884a59 --- /dev/null +++ b/includes/libs/rdbms/exception/DBExpectedError.php @@ -0,0 +1,45 @@ +params = $params; + } + + public function getKey() { + return 'databaseerror-text'; + } + + public function getParams() { + return $this->params; + } +} diff --git a/includes/libs/rdbms/exception/DBQueryError.php b/includes/libs/rdbms/exception/DBQueryError.php new file mode 100644 index 0000000000..ac9217d2fd --- /dev/null +++ b/includes/libs/rdbms/exception/DBQueryError.php @@ -0,0 +1,63 @@ +wasConnectionError( $errno ) ) { + $message = "A connection error occured. \n" . + "Query: $sql\n" . + "Function: $fname\n" . + "Error: $errno $error\n"; + } else { + $message = "A database query error has occurred. Did you forget to run " . + "your application's database schema updater after upgrading? \n" . + "Query: $sql\n" . + "Function: $fname\n" . + "Error: $errno $error\n"; + } + + parent::__construct( $db, $message ); + + $this->error = $error; + $this->errno = $errno; + $this->sql = $sql; + $this->fname = $fname; + } +} diff --git a/includes/libs/rdbms/exception/DBReadOnlyError.php b/includes/libs/rdbms/exception/DBReadOnlyError.php new file mode 100644 index 0000000000..d4dce1e13f --- /dev/null +++ b/includes/libs/rdbms/exception/DBReadOnlyError.php @@ -0,0 +1,26 @@ +