api: Switch to use IConnectionProvider
As much as possible Bug: T330641 Change-Id: Icb943d6d65b210760ba8966419327c9603e768e0
This commit is contained in:
parent
078dce3b5a
commit
d7c8a0648f
10 changed files with 37 additions and 37 deletions
|
|
@ -39,7 +39,6 @@ use Wikimedia\ParamValidator\ParamValidator;
|
|||
use Wikimedia\ParamValidator\TypeDef\EnumDef;
|
||||
use Wikimedia\ParamValidator\TypeDef\IntegerDef;
|
||||
use Wikimedia\ParamValidator\TypeDef\StringDef;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use Wikimedia\Timestamp\TimestampException;
|
||||
|
||||
/**
|
||||
|
|
@ -655,11 +654,13 @@ abstract class ApiBase extends ContextSource {
|
|||
/**
|
||||
* Gets a default replica DB connection object
|
||||
* @stable to override
|
||||
* @return IDatabase
|
||||
* @return \Wikimedia\Rdbms\IReadableDatabase
|
||||
*/
|
||||
protected function getDB() {
|
||||
if ( !isset( $this->mReplicaDB ) ) {
|
||||
$this->mReplicaDB = wfGetDB( DB_REPLICA, 'api' );
|
||||
$this->mReplicaDB = MediaWikiServices::getInstance()
|
||||
->getDBLoadBalancerFactory()
|
||||
->getReplicaDatabase( false, 'api' );
|
||||
}
|
||||
|
||||
return $this->mReplicaDB;
|
||||
|
|
|
|||
|
|
@ -248,7 +248,7 @@ class ApiMain extends ApiBase {
|
|||
'setnotificationtimestamp' => [
|
||||
'class' => ApiSetNotificationTimestamp::class,
|
||||
'services' => [
|
||||
'DBLoadBalancer',
|
||||
'DBLoadBalancerFactory',
|
||||
'RevisionStore',
|
||||
'WatchedItemStore',
|
||||
]
|
||||
|
|
@ -403,7 +403,7 @@ class ApiMain extends ApiBase {
|
|||
'tag' => [
|
||||
'class' => ApiTag::class,
|
||||
'services' => [
|
||||
'DBLoadBalancer',
|
||||
'DBLoadBalancerFactory',
|
||||
'RevisionStore',
|
||||
]
|
||||
],
|
||||
|
|
@ -416,7 +416,7 @@ class ApiMain extends ApiBase {
|
|||
'setpagelanguage' => [
|
||||
'class' => ApiSetPageLanguage::class,
|
||||
'services' => [
|
||||
'DBLoadBalancer',
|
||||
'DBLoadBalancerFactory',
|
||||
'LanguageNameUtils',
|
||||
]
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1642,7 +1642,7 @@ class ApiPageSet extends ApiBase {
|
|||
|
||||
/**
|
||||
* Get the database connection (read-only)
|
||||
* @return IDatabase
|
||||
* @return \Wikimedia\Rdbms\IReadableDatabase
|
||||
*/
|
||||
protected function getDB() {
|
||||
return $this->mDbSource->getDB();
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
use MediaWiki\Revision\RevisionStore;
|
||||
use MediaWiki\Title\Title;
|
||||
use Wikimedia\ParamValidator\ParamValidator;
|
||||
use Wikimedia\Rdbms\ILoadBalancer;
|
||||
use Wikimedia\Rdbms\IConnectionProvider;
|
||||
|
||||
/**
|
||||
* API interface for setting the wl_notificationtimestamp field
|
||||
|
|
@ -39,8 +39,8 @@ class ApiSetNotificationTimestamp extends ApiBase {
|
|||
/** @var RevisionStore */
|
||||
private $revisionStore;
|
||||
|
||||
/** @var ILoadBalancer */
|
||||
private $loadBalancer;
|
||||
/** @var IConnectionProvider */
|
||||
private $dbProvider;
|
||||
|
||||
/** @var WatchedItemStoreInterface */
|
||||
private $watchedItemStore;
|
||||
|
|
@ -48,20 +48,20 @@ class ApiSetNotificationTimestamp extends ApiBase {
|
|||
/**
|
||||
* @param ApiMain $main
|
||||
* @param string $action
|
||||
* @param ILoadBalancer $loadBalancer
|
||||
* @param IConnectionProvider $dbProvider
|
||||
* @param RevisionStore $revisionStore
|
||||
* @param WatchedItemStoreInterface $watchedItemStore
|
||||
*/
|
||||
public function __construct(
|
||||
ApiMain $main,
|
||||
$action,
|
||||
ILoadBalancer $loadBalancer,
|
||||
IConnectionProvider $dbProvider,
|
||||
RevisionStore $revisionStore,
|
||||
WatchedItemStoreInterface $watchedItemStore
|
||||
) {
|
||||
parent::__construct( $main, $action );
|
||||
|
||||
$this->loadBalancer = $loadBalancer;
|
||||
$this->dbProvider = $dbProvider;
|
||||
$this->revisionStore = $revisionStore;
|
||||
$this->watchedItemStore = $watchedItemStore;
|
||||
}
|
||||
|
|
@ -92,7 +92,7 @@ class ApiSetNotificationTimestamp extends ApiBase {
|
|||
);
|
||||
}
|
||||
|
||||
$dbw = $this->loadBalancer->getConnectionRef( DB_PRIMARY );
|
||||
$dbw = $this->dbProvider->getPrimaryDatabase();
|
||||
|
||||
$timestamp = null;
|
||||
if ( isset( $params['timestamp'] ) ) {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
use MediaWiki\Languages\LanguageNameUtils;
|
||||
use MediaWiki\MainConfigNames;
|
||||
use Wikimedia\ParamValidator\ParamValidator;
|
||||
use Wikimedia\Rdbms\ILoadBalancer;
|
||||
use Wikimedia\Rdbms\IConnectionProvider;
|
||||
|
||||
/**
|
||||
* API module that facilitates changing the language of a page.
|
||||
|
|
@ -34,8 +34,8 @@ use Wikimedia\Rdbms\ILoadBalancer;
|
|||
*/
|
||||
class ApiSetPageLanguage extends ApiBase {
|
||||
|
||||
/** @var ILoadBalancer */
|
||||
private $loadBalancer;
|
||||
/** @var IConnectionProvider */
|
||||
private $dbProvider;
|
||||
|
||||
/** @var LanguageNameUtils */
|
||||
private $languageNameUtils;
|
||||
|
|
@ -43,17 +43,17 @@ class ApiSetPageLanguage extends ApiBase {
|
|||
/**
|
||||
* @param ApiMain $mainModule
|
||||
* @param string $moduleName
|
||||
* @param ILoadBalancer $loadBalancer
|
||||
* @param IConnectionProvider $dbProvider
|
||||
* @param LanguageNameUtils $languageNameUtils
|
||||
*/
|
||||
public function __construct(
|
||||
ApiMain $mainModule,
|
||||
$moduleName,
|
||||
ILoadBalancer $loadBalancer,
|
||||
IConnectionProvider $dbProvider,
|
||||
LanguageNameUtils $languageNameUtils
|
||||
) {
|
||||
parent::__construct( $mainModule, $moduleName );
|
||||
$this->loadBalancer = $loadBalancer;
|
||||
$this->dbProvider = $dbProvider;
|
||||
$this->languageNameUtils = $languageNameUtils;
|
||||
}
|
||||
|
||||
|
|
@ -110,7 +110,7 @@ class ApiSetPageLanguage extends ApiBase {
|
|||
$params['lang'],
|
||||
$params['reason'] ?? '',
|
||||
$params['tags'] ?: [],
|
||||
$this->loadBalancer->getConnectionRef( ILoadBalancer::DB_PRIMARY )
|
||||
$this->dbProvider->getPrimaryDatabase()
|
||||
);
|
||||
|
||||
if ( !$status->isOK() ) {
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@
|
|||
|
||||
use MediaWiki\Revision\RevisionStore;
|
||||
use Wikimedia\ParamValidator\ParamValidator;
|
||||
use Wikimedia\Rdbms\IConnectionProvider;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use Wikimedia\Rdbms\ILoadBalancer;
|
||||
|
||||
/**
|
||||
* @ingroup API
|
||||
|
|
@ -41,17 +41,17 @@ class ApiTag extends ApiBase {
|
|||
/**
|
||||
* @param ApiMain $main
|
||||
* @param string $action
|
||||
* @param ILoadBalancer $loadBalancer
|
||||
* @param IConnectionProvider $dbProvider
|
||||
* @param RevisionStore $revisionStore
|
||||
*/
|
||||
public function __construct(
|
||||
ApiMain $main,
|
||||
$action,
|
||||
ILoadBalancer $loadBalancer,
|
||||
IConnectionProvider $dbProvider,
|
||||
RevisionStore $revisionStore
|
||||
) {
|
||||
parent::__construct( $main, $action );
|
||||
$this->dbr = $loadBalancer->getConnectionRef( DB_REPLICA );
|
||||
$this->dbr = $dbProvider->getReplicaDatabase();
|
||||
$this->revisionStore = $revisionStore;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace MediaWiki\Hook;
|
||||
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use Wikimedia\Rdbms\IReadableDatabase;
|
||||
|
||||
/**
|
||||
* This is a hook handler interface, see docs/Hooks.md.
|
||||
|
|
@ -17,15 +17,15 @@ interface ModifyExportQueryHook {
|
|||
*
|
||||
* @since 1.35
|
||||
*
|
||||
* @param IDatabase $db Database object to be queried
|
||||
* @param IReadableDatabase $db Database object to be queried
|
||||
* @param array &$tables Tables in the query
|
||||
* @param string $cond An SQL fragment included in the WHERE clause which is used to filter
|
||||
* the results, for example to a specific page. Since 1.31, modification of this
|
||||
* parameter has no effect. Since 1.35, you can use $conds instead to modify the
|
||||
* array of conditions passed to IDatabase::select().
|
||||
* array of conditions passed to IReadableDatabase::select().
|
||||
* @param array &$opts Options for the query
|
||||
* @param array &$join_conds Join conditions for the query
|
||||
* @param array &$conds The array of conditions to be passed to IDatabase::select(). Can be
|
||||
* @param array &$conds The array of conditions to be passed to IReadableDatabase::select(). Can be
|
||||
* modified. Includes the value of $cond.
|
||||
* @return bool|void True or no return value to continue or false to abort
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ use MediaWiki\Page\PageIdentity;
|
|||
use MediaWiki\Revision\RevisionAccessException;
|
||||
use MediaWiki\Revision\RevisionRecord;
|
||||
use MediaWiki\Revision\RevisionStore;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use Wikimedia\Rdbms\IReadableDatabase;
|
||||
use Wikimedia\Rdbms\IResultWrapper;
|
||||
|
||||
/**
|
||||
|
|
@ -75,7 +75,7 @@ class WikiExporter {
|
|||
/** @var XmlDumpWriter */
|
||||
private $writer;
|
||||
|
||||
/** @var IDatabase */
|
||||
/** @var IReadableDatabase */
|
||||
protected $db;
|
||||
|
||||
/** @var array|int */
|
||||
|
|
@ -106,7 +106,7 @@ class WikiExporter {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param IDatabase $db
|
||||
* @param IReadableDatabase $db
|
||||
* @param CommentStore $commentStore
|
||||
* @param HookContainer $hookContainer
|
||||
* @param RevisionStore $revisionStore
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ use MediaWiki\HookContainer\HookContainer;
|
|||
use MediaWiki\Revision\RevisionStore;
|
||||
use TitleParser;
|
||||
use WikiExporter;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
use Wikimedia\Rdbms\IReadableDatabase;
|
||||
|
||||
/**
|
||||
* Factory service for WikiExporter instances.
|
||||
|
|
@ -65,7 +65,7 @@ class WikiExporterFactory {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param IDatabase $db
|
||||
* @param IReadableDatabase $db
|
||||
* @param int|array $history
|
||||
* @param int $text
|
||||
* @param null|array $limitNamespaces
|
||||
|
|
@ -73,7 +73,7 @@ class WikiExporterFactory {
|
|||
* @return WikiExporter
|
||||
*/
|
||||
public function getWikiExporter(
|
||||
IDatabase $db,
|
||||
IReadableDatabase $db,
|
||||
$history = WikiExporter::CURRENT,
|
||||
$text = WikiExporter::TEXT,
|
||||
$limitNamespaces = null
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@ use MediaWiki\MainConfigNames;
|
|||
use MediaWiki\MediaWikiServices;
|
||||
use MediaWiki\Page\PageReference;
|
||||
use MediaWiki\Permissions\Authority;
|
||||
use Wikimedia\Rdbms\IDatabase;
|
||||
|
||||
class LogEventsList extends ContextSource {
|
||||
public const NO_ACTION_LINK = 1;
|
||||
|
|
@ -807,7 +806,7 @@ class LogEventsList extends ContextSource {
|
|||
/**
|
||||
* SQL clause to skip forbidden log types for this user
|
||||
*
|
||||
* @param IDatabase $db
|
||||
* @param \Wikimedia\Rdbms\IReadableDatabase $db
|
||||
* @param string $audience Public/user
|
||||
* @param Authority|null $performer User to check, required when audience isn't public
|
||||
* @return string|false String on success, false on failure.
|
||||
|
|
|
|||
Loading…
Reference in a new issue