From: Aaron Schulz Date: Tue, 7 Feb 2017 04:49:57 +0000 (-0800) Subject: Move Database and subclasses to Rdbms namespace X-Git-Tag: 1.31.0-rc.0~3526^2 X-Git-Url: http://git.cyclocoop.org/%7B%24admin_url%7Dcompta/comptes/journal.php?a=commitdiff_plain;h=d735dc562d2cb5a1f00dac4e61c581872efd2364;p=lhc%2Fweb%2Fwiklou.git Move Database and subclasses to Rdbms namespace Change-Id: I52bef87512f9ddd155d1f4cc0052f6b7a0db5b42 --- diff --git a/autoload.php b/autoload.php index f79c47eb3c..6c5d27f66f 100644 --- a/autoload.php +++ b/autoload.php @@ -1260,7 +1260,6 @@ $wgAutoloadLocalClasses = [ 'SVGReader' => __DIR__ . '/includes/media/SVGMetadataExtractor.php', 'SamplingStatsdClient' => __DIR__ . '/includes/libs/stats/SamplingStatsdClient.php', 'Sanitizer' => __DIR__ . '/includes/Sanitizer.php', - 'SavepointPostgres' => __DIR__ . '/includes/libs/rdbms/database/utils/SavepointPostgres.php', 'ScopedCallback' => __DIR__ . '/includes/compat/ScopedCallback.php', 'ScopedLock' => __DIR__ . '/includes/libs/lockmanager/ScopedLock.php', 'SearchApi' => __DIR__ . '/includes/api/SearchApi.php', @@ -1596,7 +1595,14 @@ $wgAutoloadLocalClasses = [ 'Wikimedia\\Rdbms\\ConnectionManager' => __DIR__ . '/includes/libs/rdbms/connectionmanager/ConnectionManager.php', 'Wikimedia\\Rdbms\\DBConnRef' => __DIR__ . '/includes/libs/rdbms/database/DBConnRef.php', 'Wikimedia\\Rdbms\\DBMasterPos' => __DIR__ . '/includes/libs/rdbms/database/position/DBMasterPos.php', + 'Wikimedia\\Rdbms\\Database' => __DIR__ . '/includes/libs/rdbms/database/Database.php', 'Wikimedia\\Rdbms\\DatabaseDomain' => __DIR__ . '/includes/libs/rdbms/database/DatabaseDomain.php', + 'Wikimedia\\Rdbms\\DatabaseMssql' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMssql.php', + 'Wikimedia\\Rdbms\\DatabaseMysql' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysql.php', + 'Wikimedia\\Rdbms\\DatabaseMysqlBase' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysqlBase.php', + 'Wikimedia\\Rdbms\\DatabaseMysqli' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysqli.php', + 'Wikimedia\\Rdbms\\DatabasePostgres' => __DIR__ . '/includes/libs/rdbms/database/DatabasePostgres.php', + 'Wikimedia\\Rdbms\\DatabaseSqlite' => __DIR__ . '/includes/libs/rdbms/database/DatabaseSqlite.php', 'Wikimedia\\Rdbms\\FakeResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/FakeResultWrapper.php', 'Wikimedia\\Rdbms\\Field' => __DIR__ . '/includes/libs/rdbms/field/Field.php', 'Wikimedia\\Rdbms\\IBlob' => __DIR__ . '/includes/libs/rdbms/encasing/IBlob.php', @@ -1626,6 +1632,7 @@ $wgAutoloadLocalClasses = [ 'Wikimedia\\Rdbms\\PostgresField' => __DIR__ . '/includes/libs/rdbms/field/PostgresField.php', 'Wikimedia\\Rdbms\\ResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/ResultWrapper.php', 'Wikimedia\\Rdbms\\SQLiteField' => __DIR__ . '/includes/libs/rdbms/field/SQLiteField.php', + 'Wikimedia\\Rdbms\\SavepointPostgres' => __DIR__ . '/includes/libs/rdbms/database/utils/SavepointPostgres.php', 'Wikimedia\\Rdbms\\SessionConsistentConnectionManager' => __DIR__ . '/includes/libs/rdbms/connectionmanager/SessionConsistentConnectionManager.php', 'Wikimedia\\Rdbms\\TransactionProfiler' => __DIR__ . '/includes/libs/rdbms/TransactionProfiler.php', 'WikitextContent' => __DIR__ . '/includes/content/WikitextContent.php', diff --git a/includes/Block.php b/includes/Block.php index b6b3ae05f1..0b7f7b2544 100644 --- a/includes/Block.php +++ b/includes/Block.php @@ -20,6 +20,7 @@ * @file */ +use Wikimedia\Rdbms\Database; use Wikimedia\Rdbms\IDatabase; use MediaWiki\MediaWikiServices; diff --git a/includes/GlobalFunctions.php b/includes/GlobalFunctions.php index 3747c23865..243d066184 100644 --- a/includes/GlobalFunctions.php +++ b/includes/GlobalFunctions.php @@ -3072,7 +3072,7 @@ function wfSplitWikiID( $wiki ) { * @todo Replace calls to wfGetDB with calls to LoadBalancer::getConnection() * on an injected instance of LoadBalancer. * - * @return Database + * @return \Wikimedia\Rdbms\Database */ function wfGetDB( $db, $groups = [], $wiki = false ) { return wfGetLB( $wiki )->getConnection( $db, $groups, $wiki ); diff --git a/includes/Revision.php b/includes/Revision.php index bae974f15c..b20f843497 100644 --- a/includes/Revision.php +++ b/includes/Revision.php @@ -20,6 +20,7 @@ * @file */ +use Wikimedia\Rdbms\Database; use Wikimedia\Rdbms\IDatabase; use MediaWiki\Linker\LinkTarget; use MediaWiki\MediaWikiServices; diff --git a/includes/SiteStats.php b/includes/SiteStats.php index bc6b84248c..1c7730c971 100644 --- a/includes/SiteStats.php +++ b/includes/SiteStats.php @@ -20,6 +20,7 @@ * @file */ +use Wikimedia\Rdbms\Database; use Wikimedia\Rdbms\IDatabase; /** diff --git a/includes/Title.php b/includes/Title.php index 0db4094f7f..3a25ebe69b 100644 --- a/includes/Title.php +++ b/includes/Title.php @@ -22,6 +22,7 @@ * @file */ +use Wikimedia\Rdbms\Database; use Wikimedia\Rdbms\IDatabase; use MediaWiki\Linker\LinkTarget; use MediaWiki\Interwiki\InterwikiLookup; diff --git a/includes/actions/InfoAction.php b/includes/actions/InfoAction.php index 167b7098bd..df7afca945 100644 --- a/includes/actions/InfoAction.php +++ b/includes/actions/InfoAction.php @@ -23,6 +23,7 @@ */ use MediaWiki\MediaWikiServices; +use Wikimedia\Rdbms\Database; /** * Displays information about a page. diff --git a/includes/api/ApiBase.php b/includes/api/ApiBase.php index b698ceffbc..bf8e632387 100644 --- a/includes/api/ApiBase.php +++ b/includes/api/ApiBase.php @@ -626,7 +626,7 @@ abstract class ApiBase extends ContextSource { /** * Gets a default replica DB connection object - * @return Database + * @return IDatabase */ protected function getDB() { if ( !isset( $this->mSlaveDB ) ) { diff --git a/includes/api/ApiOpenSearch.php b/includes/api/ApiOpenSearch.php index ff65d0e29d..dc1b4e73af 100644 --- a/includes/api/ApiOpenSearch.php +++ b/includes/api/ApiOpenSearch.php @@ -25,6 +25,7 @@ */ use MediaWiki\MediaWikiServices; +use Wikimedia\Rdbms\Database; /** * @ingroup API diff --git a/includes/api/ApiPageSet.php b/includes/api/ApiPageSet.php index a235532cf3..5609ad865c 100644 --- a/includes/api/ApiPageSet.php +++ b/includes/api/ApiPageSet.php @@ -1426,7 +1426,7 @@ class ApiPageSet extends ApiBase { /** * Get the database connection (read-only) - * @return Database + * @return IDatabase */ protected function getDB() { return $this->mDbSource->getDB(); diff --git a/includes/api/ApiQuery.php b/includes/api/ApiQuery.php index 5395bf0491..e6f3fc45f7 100644 --- a/includes/api/ApiQuery.php +++ b/includes/api/ApiQuery.php @@ -24,6 +24,8 @@ * @file */ +use Wikimedia\Rdbms\IDatabase; + /** * This is the main query class. It behaves similar to ApiMain: based on the * parameters given, it will create a list of titles to work on (an ApiPageSet @@ -168,7 +170,7 @@ class ApiQuery extends ApiBase { * @param string $name Name to assign to the database connection * @param int $db One of the DB_* constants * @param array $groups Query groups - * @return Database + * @return IDatabase */ public function getNamedDB( $name, $db, $groups ) { if ( !array_key_exists( $name, $this->mNamedDB ) ) { diff --git a/includes/api/ApiQueryBase.php b/includes/api/ApiQueryBase.php index 87bb6a79d0..baefbda3f1 100644 --- a/includes/api/ApiQueryBase.php +++ b/includes/api/ApiQueryBase.php @@ -24,6 +24,7 @@ * @file */ +use Wikimedia\Rdbms\IDatabase; use Wikimedia\Rdbms\ResultWrapper; /** @@ -105,7 +106,7 @@ abstract class ApiQueryBase extends ApiBase { /** * Get the Query database connection (read-only) - * @return Database + * @return IDatabase */ protected function getDB() { if ( is_null( $this->mDb ) ) { @@ -121,7 +122,7 @@ abstract class ApiQueryBase extends ApiBase { * @param string $name Name to assign to the database connection * @param int $db One of the DB_* constants * @param array $groups Query groups - * @return Database + * @return IDatabase */ public function selectNamedDB( $name, $db, $groups ) { $this->mDb = $this->getQuery()->getNamedDB( $name, $db, $groups ); diff --git a/includes/cache/BacklinkCache.php b/includes/cache/BacklinkCache.php index 72156063ec..e171bc74c5 100644 --- a/includes/cache/BacklinkCache.php +++ b/includes/cache/BacklinkCache.php @@ -143,7 +143,7 @@ class BacklinkCache { /** * Get the replica DB connection to the database * When non existing, will initialize the connection. - * @return Database + * @return IDatabase */ protected function getDB() { if ( !isset( $this->db ) ) { diff --git a/includes/cache/LinkCache.php b/includes/cache/LinkCache.php index 57f66f1f89..2d088952b6 100644 --- a/includes/cache/LinkCache.php +++ b/includes/cache/LinkCache.php @@ -20,6 +20,8 @@ * @file * @ingroup Cache */ + +use Wikimedia\Rdbms\Database; use Wikimedia\Rdbms\IDatabase; use MediaWiki\Linker\LinkTarget; use MediaWiki\MediaWikiServices; diff --git a/includes/cache/MessageBlobStore.php b/includes/cache/MessageBlobStore.php index 14baeeb22b..b076a083c9 100644 --- a/includes/cache/MessageBlobStore.php +++ b/includes/cache/MessageBlobStore.php @@ -26,6 +26,7 @@ use Psr\Log\LoggerAwareInterface; use Psr\Log\LoggerInterface; use Psr\Log\NullLogger; +use Wikimedia\Rdbms\Database; /** * This class generates message blobs for use by ResourceLoader modules. diff --git a/includes/cache/MessageCache.php b/includes/cache/MessageCache.php index 8a42a9a72d..355aff40ed 100644 --- a/includes/cache/MessageCache.php +++ b/includes/cache/MessageCache.php @@ -23,6 +23,7 @@ use MediaWiki\MediaWikiServices; use Wikimedia\ScopedCallback; use MediaWiki\Logger\LoggerFactory; +use Wikimedia\Rdbms\Database; /** * MediaWiki message cache structure version. diff --git a/includes/changetags/ChangeTags.php b/includes/changetags/ChangeTags.php index d2239eb0be..ca3c28ba73 100644 --- a/includes/changetags/ChangeTags.php +++ b/includes/changetags/ChangeTags.php @@ -21,6 +21,8 @@ * @ingroup Change tagging */ +use Wikimedia\Rdbms\Database; + class ChangeTags { /** * Can't delete tags with more than this many uses. Similar in intent to diff --git a/includes/dao/DBAccessBase.php b/includes/dao/DBAccessBase.php index da660bdcae..0f8d7f7301 100644 --- a/includes/dao/DBAccessBase.php +++ b/includes/dao/DBAccessBase.php @@ -1,5 +1,6 @@ [], 'mssql' => [], ]; + static $classAliases = [ + 'DatabaseMssql' => DatabaseMssql::class, + 'DatabaseMysql' => DatabaseMysql::class, + 'DatabaseMysqli' => DatabaseMysqli::class, + 'DatabaseSqlite' => DatabaseSqlite::class, + 'DatabasePostgres' => DatabasePostgres::class + ]; $driver = false; $dbType = strtolower( $dbType ); @@ -362,12 +373,17 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware } else { $driver = $dbType; } + if ( $driver === false || $driver === '' ) { throw new InvalidArgumentException( __METHOD__ . " no viable database extension found for type '$dbType'" ); } $class = 'Database' . ucfirst( $driver ); + if ( isset( $classAliases[$class] ) ) { + $class = $classAliases[$class]; + } + if ( class_exists( $class ) && is_subclass_of( $class, IDatabase::class ) ) { // Resolve some defaults for b/c $p['host'] = isset( $p['host'] ) ? $p['host'] : false; @@ -3479,4 +3495,5 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware } } -class_alias( Database::class, 'DatabaseBase' ); +class_alias( Database::class, 'DatabaseBase' ); // b/c for old name +class_alias( Database::class, 'Database' ); // b/c global alias diff --git a/includes/libs/rdbms/database/DatabaseMssql.php b/includes/libs/rdbms/database/DatabaseMssql.php index 75ddc9d514..bbd2400be6 100644 --- a/includes/libs/rdbms/database/DatabaseMssql.php +++ b/includes/libs/rdbms/database/DatabaseMssql.php @@ -24,11 +24,15 @@ * @author Ryan Biesemeyer * @author Ryan Schmidt */ -use Wikimedia\Rdbms\Blob; -use Wikimedia\Rdbms\MssqlBlob; -use Wikimedia\Rdbms\MssqlField; -use Wikimedia\Rdbms\ResultWrapper; -use Wikimedia\Rdbms\MssqlResultWrapper; + +namespace Wikimedia\Rdbms; + +use MediaWiki; +use DBConnectionError; +use DBUnexpectedError; +use DBQueryError; +use Exception; +use stdClass; /** * @ingroup Database @@ -1360,3 +1364,5 @@ class DatabaseMssql extends Database { return $old; } } + +class_alias( DatabaseMssql::class, 'DatabaseMssql' ); diff --git a/includes/libs/rdbms/database/DatabaseMysql.php b/includes/libs/rdbms/database/DatabaseMysql.php index 9ab7c64c1e..c0c92237b3 100644 --- a/includes/libs/rdbms/database/DatabaseMysql.php +++ b/includes/libs/rdbms/database/DatabaseMysql.php @@ -20,6 +20,9 @@ * @file * @ingroup Database */ +namespace Wikimedia\Rdbms; + +use DBConnectionError; /** * Database abstraction object for PHP extension mysql. @@ -202,3 +205,5 @@ class DatabaseMysql extends DatabaseMysqlBase { return mysql_real_escape_string( $s, $conn ); } } + +class_alias( DatabaseMysql::class, 'DatabaseMysql' ); diff --git a/includes/libs/rdbms/database/DatabaseMysqlBase.php b/includes/libs/rdbms/database/DatabaseMysqlBase.php index e2b522610c..b09516c9a9 100644 --- a/includes/libs/rdbms/database/DatabaseMysqlBase.php +++ b/includes/libs/rdbms/database/DatabaseMysqlBase.php @@ -20,10 +20,18 @@ * @file * @ingroup Database */ -use Wikimedia\Rdbms\DBMasterPos; -use Wikimedia\Rdbms\MySQLMasterPos; -use Wikimedia\Rdbms\MySQLField; -use Wikimedia\Rdbms\ResultWrapper; +namespace Wikimedia\Rdbms; + +use DateTime; +use DateTimeZone; +use MediaWiki; +use InvalidArgumentException; +use DBError; +use DBExpectedError; +use DBUnexpectedError; +use DBConnectionError; +use Exception; +use stdClass; /** * Database abstraction object for MySQL. @@ -1360,3 +1368,5 @@ abstract class DatabaseMysqlBase extends Database { } } } + +class_alias( DatabaseMysqlBase::class, 'DatabaseMysqlBase' ); diff --git a/includes/libs/rdbms/database/DatabaseMysqli.php b/includes/libs/rdbms/database/DatabaseMysqli.php index 7a2200a4da..be25489b35 100644 --- a/includes/libs/rdbms/database/DatabaseMysqli.php +++ b/includes/libs/rdbms/database/DatabaseMysqli.php @@ -20,8 +20,11 @@ * @file * @ingroup Database */ +namespace Wikimedia\Rdbms; -use Wikimedia\Rdbms\ResultWrapper; +use mysqli; +use DBConnectionError; +use IP; /** * Database abstraction object for PHP extension mysqli. @@ -263,7 +266,7 @@ class DatabaseMysqli extends DatabaseMysqlBase { } /** - * @param resource|ResultWrapper $res + * @param mysqli $res * @param int $n * @return mixed */ @@ -274,7 +277,7 @@ class DatabaseMysqli extends DatabaseMysqlBase { } /** - * @param resource|ResultWrapper $res + * @param mysqli $res * @param int $n * @return mixed */ @@ -285,7 +288,7 @@ class DatabaseMysqli extends DatabaseMysqlBase { } /** - * @param resource|ResultWrapper $res + * @param mysqli $res * @param int $row * @return mixed */ @@ -331,3 +334,5 @@ class DatabaseMysqli extends DatabaseMysqlBase { } } } + +class_alias( DatabaseMysqli::class, 'DatabaseMysqli' ); diff --git a/includes/libs/rdbms/database/DatabasePostgres.php b/includes/libs/rdbms/database/DatabasePostgres.php index 5bcd4a8e56..5049f9b09f 100644 --- a/includes/libs/rdbms/database/DatabasePostgres.php +++ b/includes/libs/rdbms/database/DatabasePostgres.php @@ -20,12 +20,14 @@ * @file * @ingroup Database */ +namespace Wikimedia\Rdbms; + use Wikimedia\Timestamp\ConvertibleTimestamp; use Wikimedia\WaitConditionLoop; -use Wikimedia\Rdbms\Blob; -use Wikimedia\Rdbms\PostgresBlob; -use Wikimedia\Rdbms\PostgresField; -use Wikimedia\Rdbms\ResultWrapper; +use MediaWiki; +use DBUnexpectedError; +use DBConnectionError; +use Exception; /** * @ingroup Database @@ -859,10 +861,10 @@ __INDEXATTR__; * * @since 1.19 * @param string $text Postgreql array returned in a text form like {a,b} - * @param string $output + * @param string[] $output * @param int|bool $limit * @param int $offset - * @return string + * @return string[] */ private function pg_array_parse( $text, &$output, $limit = false, $offset = 1 ) { if ( false === $limit ) { @@ -1383,6 +1385,8 @@ SQL; * @return string Integer */ private function bigintFromLockName( $lockName ) { - return Wikimedia\base_convert( substr( sha1( $lockName ), 0, 15 ), 16, 10 ); + return \Wikimedia\base_convert( substr( sha1( $lockName ), 0, 15 ), 16, 10 ); } } + +class_alias( DatabasePostgres::class, 'DatabasePostgres' ); diff --git a/includes/libs/rdbms/database/DatabaseSqlite.php b/includes/libs/rdbms/database/DatabaseSqlite.php index 090ce8eeae..6d187b84f8 100644 --- a/includes/libs/rdbms/database/DatabaseSqlite.php +++ b/includes/libs/rdbms/database/DatabaseSqlite.php @@ -21,9 +21,18 @@ * @file * @ingroup Database */ -use Wikimedia\Rdbms\Blob; -use Wikimedia\Rdbms\SQLiteField; -use Wikimedia\Rdbms\ResultWrapper; +namespace Wikimedia\Rdbms; + +use PDO; +use PDOException; +use LockManager; +use FSLockManager; +use DBConnectionError; +use DBReadOnlyError; +use InvalidArgumentException; +use RuntimeException; +use DBError; +use stdClass; /** * @ingroup Database @@ -116,8 +125,10 @@ class DatabaseSqlite extends Database { $p['dbFilePath'] = $filename; $p['schema'] = false; $p['tablePrefix'] = ''; + /** @var DatabaseSqlite $db */ + $db = Database::factory( 'sqlite', $p ); - return Database::factory( 'sqlite', $p ); + return $db; } /** @@ -1048,3 +1059,6 @@ class DatabaseSqlite extends Database { return 'SQLite ' . (string)$this->mConn->getAttribute( PDO::ATTR_SERVER_VERSION ); } } + +class_alias( DatabaseSqlite::class, 'DatabaseSqlite' ); + diff --git a/includes/libs/rdbms/database/IDatabase.php b/includes/libs/rdbms/database/IDatabase.php index 0b146cd80b..feaf5cf46d 100644 --- a/includes/libs/rdbms/database/IDatabase.php +++ b/includes/libs/rdbms/database/IDatabase.php @@ -1808,4 +1808,4 @@ interface IDatabase { public function setTableAliases( array $aliases ); } -class_alias( 'Wikimedia\Rdbms\IDatabase', 'IDatabase' ); +class_alias( IDatabase::class, 'IDatabase' ); diff --git a/includes/libs/rdbms/database/IMaintainableDatabase.php b/includes/libs/rdbms/database/IMaintainableDatabase.php index b984c42544..5666170d73 100644 --- a/includes/libs/rdbms/database/IMaintainableDatabase.php +++ b/includes/libs/rdbms/database/IMaintainableDatabase.php @@ -279,4 +279,4 @@ interface IMaintainableDatabase extends IDatabase { public function unlockTables( $method ); } -class_alias( 'Wikimedia\Rdbms\IMaintainableDatabase', 'IMaintainableDatabase' ); +class_alias( IMaintainableDatabase::class, 'IMaintainableDatabase' ); diff --git a/includes/libs/rdbms/database/MaintainableDBConnRef.php b/includes/libs/rdbms/database/MaintainableDBConnRef.php index 8238f3edd3..6c94eb9a34 100644 --- a/includes/libs/rdbms/database/MaintainableDBConnRef.php +++ b/includes/libs/rdbms/database/MaintainableDBConnRef.php @@ -82,4 +82,4 @@ class MaintainableDBConnRef extends DBConnRef implements IMaintainableDatabase { } } -class_alias( 'Wikimedia\Rdbms\MaintainableDBConnRef', 'MaintainableDBConnRef' ); +class_alias( MaintainableDBConnRef::class, 'MaintainableDBConnRef' ); diff --git a/includes/libs/rdbms/database/utils/SavepointPostgres.php b/includes/libs/rdbms/database/utils/SavepointPostgres.php index 8ae78e9371..cf5060e446 100644 --- a/includes/libs/rdbms/database/utils/SavepointPostgres.php +++ b/includes/libs/rdbms/database/utils/SavepointPostgres.php @@ -18,6 +18,9 @@ * @file * @ingroup Database */ + +namespace Wikimedia\Rdbms; + use Psr\Log\LoggerInterface; /** diff --git a/includes/libs/rdbms/exception/DBQueryError.php b/includes/libs/rdbms/exception/DBQueryError.php index b4c3d529f5..89b9cea61a 100644 --- a/includes/libs/rdbms/exception/DBQueryError.php +++ b/includes/libs/rdbms/exception/DBQueryError.php @@ -18,6 +18,7 @@ * @file * @ingroup Database */ +use Wikimedia\Rdbms\Database; use Wikimedia\Rdbms\IDatabase; /** diff --git a/includes/libs/rdbms/field/PostgresField.php b/includes/libs/rdbms/field/PostgresField.php index c5819a32ca..600f34a456 100644 --- a/includes/libs/rdbms/field/PostgresField.php +++ b/includes/libs/rdbms/field/PostgresField.php @@ -2,8 +2,6 @@ namespace Wikimedia\Rdbms; -use DatabasePostgres; - class PostgresField implements Field { private $name, $tablename, $type, $nullable, $max_length, $deferred, $deferrable, $conname, $has_default, $default; diff --git a/includes/libs/rdbms/loadbalancer/ILoadBalancer.php b/includes/libs/rdbms/loadbalancer/ILoadBalancer.php index 2ea0e4ef83..8b5a98db06 100644 --- a/includes/libs/rdbms/loadbalancer/ILoadBalancer.php +++ b/includes/libs/rdbms/loadbalancer/ILoadBalancer.php @@ -23,7 +23,6 @@ */ namespace Wikimedia\Rdbms; -use Database; use DBError; use DBAccessError; use DBTransactionError; diff --git a/includes/libs/rdbms/loadbalancer/LoadBalancer.php b/includes/libs/rdbms/loadbalancer/LoadBalancer.php index d178657d44..d268f83b5e 100644 --- a/includes/libs/rdbms/loadbalancer/LoadBalancer.php +++ b/includes/libs/rdbms/loadbalancer/LoadBalancer.php @@ -25,7 +25,6 @@ namespace Wikimedia\Rdbms; use Psr\Log\LoggerInterface; use Psr\Log\NullLogger; use Wikimedia\ScopedCallback; -use Database; use BagOStuff; use EmptyBagOStuff; use WANObjectCache; @@ -49,7 +48,7 @@ use Exception; class LoadBalancer implements ILoadBalancer { /** @var array[] Map of (server index => server config array) */ private $mServers; - /** @var \Database[][][] Map of local/foreignUsed/foreignFree => server index => IDatabase array */ + /** @var Database[][][] Map of local/foreignUsed/foreignFree => server index => IDatabase array */ private $mConns; /** @var float[] Map of (server index => weight) */ private $mLoads; @@ -87,7 +86,7 @@ class LoadBalancer implements ILoadBalancer { /** @var LoggerInterface */ protected $perfLogger; - /** @var \Database Database connection that caused a problem */ + /** @var Database DB connection object that caused a problem */ private $errorConnection; /** @var integer The generic (not query grouped) replica DB index (of $mServers) */ private $mReadIndex; diff --git a/includes/objectcache/SqlBagOStuff.php b/includes/objectcache/SqlBagOStuff.php index 8f94374dd0..141a375c62 100644 --- a/includes/objectcache/SqlBagOStuff.php +++ b/includes/objectcache/SqlBagOStuff.php @@ -21,6 +21,7 @@ * @ingroup Cache */ +use Wikimedia\Rdbms\Database; use Wikimedia\Rdbms\IDatabase; use \MediaWiki\MediaWikiServices; use \Wikimedia\WaitConditionLoop; diff --git a/includes/resourceloader/ResourceLoaderWikiModule.php b/includes/resourceloader/ResourceLoaderWikiModule.php index 3eac5df9a7..fd31eac778 100644 --- a/includes/resourceloader/ResourceLoaderWikiModule.php +++ b/includes/resourceloader/ResourceLoaderWikiModule.php @@ -22,6 +22,7 @@ * @author Roan Kattouw */ +use Wikimedia\Rdbms\Database; use Wikimedia\Rdbms\IDatabase; /** diff --git a/includes/user/BotPassword.php b/includes/user/BotPassword.php index 57610fc9e4..9a955fb928 100644 --- a/includes/user/BotPassword.php +++ b/includes/user/BotPassword.php @@ -19,6 +19,7 @@ */ use MediaWiki\Session\BotPasswordSessionProvider; +use Wikimedia\Rdbms\IMaintainableDatabase; /** * Utility class for bot passwords @@ -68,7 +69,7 @@ class BotPassword implements IDBAccessObject { /** * Get a database connection for the bot passwords database * @param int $db Index of the connection to get, e.g. DB_MASTER or DB_REPLICA. - * @return Database + * @return IMaintainableDatabase */ public static function getDB( $db ) { global $wgBotPasswordsCluster, $wgBotPasswordsDatabase; diff --git a/includes/user/User.php b/includes/user/User.php index ef4537f059..9d1b2d3f16 100644 --- a/includes/user/User.php +++ b/includes/user/User.php @@ -27,6 +27,7 @@ use MediaWiki\Auth\AuthManager; use MediaWiki\Auth\AuthenticationResponse; use MediaWiki\Auth\AuthenticationRequest; use Wikimedia\ScopedCallback; +use Wikimedia\Rdbms\Database; /** * String Some punctuation to prevent editing from broken text-mangling proxies. diff --git a/maintenance/rebuildtextindex.php b/maintenance/rebuildtextindex.php index e4bb60e932..faa4d96293 100644 --- a/maintenance/rebuildtextindex.php +++ b/maintenance/rebuildtextindex.php @@ -28,6 +28,7 @@ require_once __DIR__ . '/Maintenance.php'; use Wikimedia\Rdbms\IMaintainableDatabase; +use Wikimedia\Rdbms\DatabaseSqlite; /** * Maintenance script that rebuilds search index table from scratch. diff --git a/maintenance/sqlite.inc b/maintenance/sqlite.inc index 33ca0ffc71..cbb0c7967a 100644 --- a/maintenance/sqlite.inc +++ b/maintenance/sqlite.inc @@ -21,6 +21,8 @@ * @ingroup Maintenance */ +use Wikimedia\Rdbms\DatabaseSqlite; + /** * This class contains code common to different SQLite-related maintenance scripts * diff --git a/tests/phpunit/includes/db/DatabaseMysqlBaseTest.php b/tests/phpunit/includes/db/DatabaseMysqlBaseTest.php index b95462abfe..97e9b2626f 100644 --- a/tests/phpunit/includes/db/DatabaseMysqlBaseTest.php +++ b/tests/phpunit/includes/db/DatabaseMysqlBaseTest.php @@ -28,6 +28,7 @@ use Wikimedia\Rdbms\TransactionProfiler; use Wikimedia\Rdbms\DatabaseDomain; use Wikimedia\Rdbms\MySQLMasterPos; +use Wikimedia\Rdbms\DatabaseMysqlBase; /** * Fake class around abstract class so we can call concrete methods. diff --git a/tests/phpunit/includes/db/DatabaseSqliteTest.php b/tests/phpunit/includes/db/DatabaseSqliteTest.php index 10bf028591..b90b1ad312 100644 --- a/tests/phpunit/includes/db/DatabaseSqliteTest.php +++ b/tests/phpunit/includes/db/DatabaseSqliteTest.php @@ -1,6 +1,8 @@