From: Aaron Schulz Date: Wed, 14 Sep 2016 18:55:33 +0000 (-0700) Subject: Move DBError to /libs/rdbms/exception X-Git-Tag: 1.31.0-rc.0~5580^2 X-Git-Url: http://git.cyclocoop.org/%22%20%20.%20generer_url_ecrire%28%22mots_tous%22%29%20.%20%22?a=commitdiff_plain;h=048da5273ba817386e631c5a14db895765e440c9;p=lhc%2Fweb%2Fwiklou.git Move DBError to /libs/rdbms/exception Change-Id: I2ad40db66a68f03fb34a63278a652e0505195076 --- diff --git a/autoload.php b/autoload.php index 5141c35c88..d6908c17de 100644 --- a/autoload.php +++ b/autoload.php @@ -297,21 +297,21 @@ $wgAutoloadLocalClasses = [ 'CsvStatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php', 'CurlHttpRequest' => __DIR__ . '/includes/HttpFunctions.php', 'DBAccessBase' => __DIR__ . '/includes/dao/DBAccessBase.php', - 'DBAccessError' => __DIR__ . '/includes/db/DatabaseError.php', + 'DBAccessError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', 'DBAccessObjectUtils' => __DIR__ . '/includes/dao/DBAccessObjectUtils.php', 'DBConnRef' => __DIR__ . '/includes/db/DBConnRef.php', - 'DBConnectionError' => __DIR__ . '/includes/db/DatabaseError.php', - 'DBError' => __DIR__ . '/includes/db/DatabaseError.php', - 'DBExpectedError' => __DIR__ . '/includes/db/DatabaseError.php', + 'DBConnectionError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', + 'DBError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', + 'DBExpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', 'DBFileJournal' => __DIR__ . '/includes/filebackend/filejournal/DBFileJournal.php', 'DBLockManager' => __DIR__ . '/includes/filebackend/lockmanager/DBLockManager.php', 'DBMasterPos' => __DIR__ . '/includes/db/DatabaseUtility.php', - 'DBQueryError' => __DIR__ . '/includes/db/DatabaseError.php', - 'DBReadOnlyError' => __DIR__ . '/includes/db/DatabaseError.php', - 'DBReplicationWaitError' => __DIR__ . '/includes/db/DatabaseError.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', 'DBSiteStore' => __DIR__ . '/includes/site/DBSiteStore.php', - 'DBTransactionError' => __DIR__ . '/includes/db/DatabaseError.php', - 'DBUnexpectedError' => __DIR__ . '/includes/db/DatabaseError.php', + 'DBTransactionError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', + 'DBUnexpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php', 'DataUpdate' => __DIR__ . '/includes/deferred/DataUpdate.php', 'Database' => __DIR__ . '/includes/db/Database.php', 'DatabaseBase' => __DIR__ . '/includes/db/Database.php', diff --git a/includes/db/DatabaseError.php b/includes/db/DatabaseError.php deleted file mode 100644 index 2242c5af53..0000000000 --- a/includes/db/DatabaseError.php +++ /dev/null @@ -1,149 +0,0 @@ -db = $db; - parent::__construct( $error ); - } -} - -/** - * Base class for the more common types of database errors. These are known to occur - * frequently, so we try to give friendly error messages for them. - * - * @ingroup Database - * @since 1.23 - */ -class DBExpectedError extends DBError { -} - -/** - * @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 error has occurred. Did you forget to run " . - "maintenance/update.php after upgrading? See: " . - "https://www.mediawiki.org/wiki/Manual:Upgrading#Run_the_update_script\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 { -} - -/** - * 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( "Mediawiki tried to access the database via wfGetDB(). " . - "This is not allowed, because database access has been disabled." ); - } -} - diff --git a/includes/libs/rdbms/exception/DBError.php b/includes/libs/rdbms/exception/DBError.php new file mode 100644 index 0000000000..2242c5af53 --- /dev/null +++ b/includes/libs/rdbms/exception/DBError.php @@ -0,0 +1,149 @@ +db = $db; + parent::__construct( $error ); + } +} + +/** + * Base class for the more common types of database errors. These are known to occur + * frequently, so we try to give friendly error messages for them. + * + * @ingroup Database + * @since 1.23 + */ +class DBExpectedError extends DBError { +} + +/** + * @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 error has occurred. Did you forget to run " . + "maintenance/update.php after upgrading? See: " . + "https://www.mediawiki.org/wiki/Manual:Upgrading#Run_the_update_script\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 { +} + +/** + * 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( "Mediawiki tried to access the database via wfGetDB(). " . + "This is not allowed, because database access has been disabled." ); + } +} +