diff options
author | Umherirrender <umherirrender_de.wp@web.de> | 2024-05-23 22:34:21 +0200 |
---|---|---|
committer | Umherirrender <umherirrender_de.wp@web.de> | 2024-05-24 16:11:12 +0000 |
commit | 57d623f530d09913974ee0675608d1f4ecb46bca (patch) | |
tree | bd1d8556d0f0be8133ff426747d7b61638b11c83 | |
parent | 4114fd26d3882f73b107d744e415e5b4a413b295 (diff) | |
download | mediawikicore-57d623f530d09913974ee0675608d1f4ecb46bca.tar.gz mediawikicore-57d623f530d09913974ee0675608d1f4ecb46bca.zip |
Change some type hints from IDatabase to IReadableDatabase
Use narrow interface if no writes are done
Change-Id: I55148c8b6fda8830a29a235c63fc118f636ab3e6
-rw-r--r-- | includes/Revision/RevisionStore.php | 12 | ||||
-rw-r--r-- | includes/SiteStats/SiteStats.php | 6 | ||||
-rw-r--r-- | includes/SiteStats/SiteStatsInit.php | 6 | ||||
-rw-r--r-- | includes/Storage/NameTableStore.php | 5 | ||||
-rw-r--r-- | includes/cache/LinkCache.php | 8 | ||||
-rw-r--r-- | includes/filerepo/file/ArchivedFile.php | 7 | ||||
-rw-r--r-- | includes/jobqueue/JobQueueDB.php | 9 | ||||
-rw-r--r-- | includes/page/PageStore.php | 3 | ||||
-rw-r--r-- | includes/user/User.php | 4 | ||||
-rw-r--r-- | maintenance/rebuildrecentchanges.php | 3 |
10 files changed, 32 insertions, 31 deletions
diff --git a/includes/Revision/RevisionStore.php b/includes/Revision/RevisionStore.php index 6bb6a9656e64..1c641db2dd71 100644 --- a/includes/Revision/RevisionStore.php +++ b/includes/Revision/RevisionStore.php @@ -2783,12 +2783,12 @@ class RevisionStore implements RevisionFactory, RevisionLookup, LoggerAwareInter * * MCR migration note: this corresponded to Revision::getPreviousRevisionId * - * @param IDatabase $db + * @param IReadableDatabase $db * @param RevisionRecord $rev * * @return int */ - private function getPreviousRevisionId( IDatabase $db, RevisionRecord $rev ) { + private function getPreviousRevisionId( IReadableDatabase $db, RevisionRecord $rev ) { $this->checkDatabaseDomain( $db ); if ( $rev->getPageId( $this->wikiId ) === null ) { @@ -2881,11 +2881,11 @@ class RevisionStore implements RevisionFactory, RevisionLookup, LoggerAwareInter * * MCR migration note: this replaced Revision::countByTitle * - * @param IDatabase $db + * @param IReadableDatabase $db * @param PageIdentity $page * @return int */ - public function countRevisionsByTitle( IDatabase $db, PageIdentity $page ) { + public function countRevisionsByTitle( IReadableDatabase $db, PageIdentity $page ) { $id = $this->getArticleId( $page ); if ( $id ) { return $this->countRevisionsByPageId( $db, $id ); @@ -2904,14 +2904,14 @@ class RevisionStore implements RevisionFactory, RevisionLookup, LoggerAwareInter * logic in EditPage that uses this seems conceptually dubious. Revision::userWasLastToEdit * had been deprecated since 1.24 (the Revision class was removed entirely in 1.37). * - * @param IDatabase $db The Database to perform the check on. + * @param IReadableDatabase $db The Database to perform the check on. * @param int $pageId The ID of the page in question * @param int $userId The ID of the user in question * @param string $since Look at edits since this time * * @return bool True if the given user was the only one to edit since the given timestamp */ - public function userWasLastToEdit( IDatabase $db, $pageId, $userId, $since ) { + public function userWasLastToEdit( IReadableDatabase $db, $pageId, $userId, $since ) { $this->checkDatabaseDomain( $db ); if ( !$userId ) { diff --git a/includes/SiteStats/SiteStats.php b/includes/SiteStats/SiteStats.php index 7a2823cad0c1..149e43e02196 100644 --- a/includes/SiteStats/SiteStats.php +++ b/includes/SiteStats/SiteStats.php @@ -27,8 +27,8 @@ use MediaWiki\MainConfigNames; use MediaWiki\MediaWikiServices; use stdClass; use Wikimedia\Rdbms\Database; -use Wikimedia\Rdbms\IDatabase; use Wikimedia\Rdbms\ILoadBalancer; +use Wikimedia\Rdbms\IReadableDatabase; /** * Static accessor class for site_stats and related things @@ -234,10 +234,10 @@ class SiteStats { } /** - * @param IDatabase $db + * @param IReadableDatabase $db * @return stdClass|false */ - private static function doLoadFromDB( IDatabase $db ) { + private static function doLoadFromDB( IReadableDatabase $db ) { $fields = self::selectFields(); $rows = $db->newSelectQueryBuilder() ->select( $fields ) diff --git a/includes/SiteStats/SiteStatsInit.php b/includes/SiteStats/SiteStatsInit.php index d54719ce3fff..c83330793b64 100644 --- a/includes/SiteStats/SiteStatsInit.php +++ b/includes/SiteStats/SiteStatsInit.php @@ -46,7 +46,7 @@ class SiteStatsInit { /** * @param bool|IReadableDatabase $database * - bool: Whether to use the primary DB - * - IDatabase: Database connection to use + * - IReadableDatabase: Database connection to use */ public function __construct( $database = false ) { if ( $database instanceof IReadableDatabase ) { @@ -133,9 +133,9 @@ class SiteStatsInit { * Do all updates and commit them. More or less a replacement * for the original initStats, but without output. * - * @param IDatabase|bool $database + * @param IReadableDatabase|bool $database * - bool: Whether to use the primary DB - * - IDatabase: Database connection to use + * - IReadableDatabase: Database connection to use * @param array $options Array of options, may contain the following values * - activeUsers bool: Whether to update the number of active users (default: false) */ diff --git a/includes/Storage/NameTableStore.php b/includes/Storage/NameTableStore.php index dc09a64148c8..09dd971b35df 100644 --- a/includes/Storage/NameTableStore.php +++ b/includes/Storage/NameTableStore.php @@ -28,6 +28,7 @@ use Wikimedia\LightweightObjectStore\ExpirationAwareness; use Wikimedia\Rdbms\Database; use Wikimedia\Rdbms\IDatabase; use Wikimedia\Rdbms\ILoadBalancer; +use Wikimedia\Rdbms\IReadableDatabase; use Wikimedia\RequestTimeout\TimeoutException; /** @@ -360,11 +361,11 @@ class NameTableStore { /** * Gets the table from the db * - * @param IDatabase $db + * @param IReadableDatabase $db * * @return string[] */ - private function loadTable( IDatabase $db ) { + private function loadTable( IReadableDatabase $db ) { $result = $db->newSelectQueryBuilder() ->select( [ 'id' => $this->idField, diff --git a/includes/cache/LinkCache.php b/includes/cache/LinkCache.php index ad0cc69861df..e2479a0321c7 100644 --- a/includes/cache/LinkCache.php +++ b/includes/cache/LinkCache.php @@ -41,8 +41,8 @@ use Psr\Log\NullLogger; use stdClass; use WANObjectCache; use Wikimedia\Rdbms\Database; -use Wikimedia\Rdbms\IDatabase; use Wikimedia\Rdbms\ILoadBalancer; +use Wikimedia\Rdbms\IReadableDatabase; /** * Cache for article titles (prefixed DB keys) and ids linked from one source @@ -470,7 +470,7 @@ class LinkCache implements LoggerAwareInterface { * @param int $ns * @param string $dbkey * @param callable|null $fetchCallback A callback that will retrieve the link row with the - * signature ( IDatabase $db, int $ns, string $dbkey, array $queryOptions ): ?stdObj. + * signature ( IReadableDatabase $db, int $ns, string $dbkey, array $queryOptions ): ?stdObj. * @param int $queryFlags IDBAccessObject::READ_XXX * * @return stdClass|null @@ -550,13 +550,13 @@ class LinkCache implements LoggerAwareInterface { } /** - * @param IDatabase $db + * @param IReadableDatabase $db * @param int $ns * @param string $dbkey * @param array $options Query options, see IDatabase::select() for details. * @return stdClass|false */ - private function fetchPageRow( IDatabase $db, int $ns, string $dbkey, $options = [] ) { + private function fetchPageRow( IReadableDatabase $db, int $ns, string $dbkey, $options = [] ) { $queryBuilder = $db->newSelectQueryBuilder() ->select( self::getSelectFields() ) ->from( 'page' ) diff --git a/includes/filerepo/file/ArchivedFile.php b/includes/filerepo/file/ArchivedFile.php index 5e8cc3122165..90997e2217cd 100644 --- a/includes/filerepo/file/ArchivedFile.php +++ b/includes/filerepo/file/ArchivedFile.php @@ -25,7 +25,6 @@ use MediaWiki\Revision\RevisionRecord; use MediaWiki\Title\Title; use MediaWiki\User\UserIdentity; use Wikimedia\Rdbms\Blob; -use Wikimedia\Rdbms\IDatabase; use Wikimedia\Rdbms\IReadableDatabase; use Wikimedia\Rdbms\SelectQueryBuilder; @@ -494,10 +493,10 @@ class ArchivedFile { * returning their addresses. * * @internal - * @param IDatabase $db + * @param IReadableDatabase $db * @return string|Blob */ - public function getMetadataForDb( IDatabase $db ) { + public function getMetadataForDb( IReadableDatabase $db ) { $this->load(); if ( !$this->metadataArray && !$this->metadataBlobs ) { $s = ''; @@ -551,7 +550,7 @@ class ArchivedFile { /** * Unserialize a metadata string which came from some non-DB source, or is - * the return value of IDatabase::decodeBlob(). + * the return value of IReadableDatabase::decodeBlob(). * * @since 1.37 * @param string $metadataString diff --git a/includes/jobqueue/JobQueueDB.php b/includes/jobqueue/JobQueueDB.php index 8cad5fe3e112..dcc7da5086bc 100644 --- a/includes/jobqueue/JobQueueDB.php +++ b/includes/jobqueue/JobQueueDB.php @@ -22,6 +22,7 @@ use Wikimedia\Rdbms\DBConnectionError; use Wikimedia\Rdbms\DBError; use Wikimedia\Rdbms\IDatabase; use Wikimedia\Rdbms\IMaintainableDatabase; +use Wikimedia\Rdbms\IReadableDatabase; use Wikimedia\Rdbms\SelectQueryBuilder; use Wikimedia\ScopedCallback; @@ -815,10 +816,10 @@ class JobQueueDB extends JobQueue { /** * @param IJobSpecification $job - * @param IDatabase $db + * @param IReadableDatabase $db * @return array */ - protected function insertFields( IJobSpecification $job, IDatabase $db ) { + protected function insertFields( IJobSpecification $job, IReadableDatabase $db ) { return [ // Fields that describe the nature of the job 'job_cmd' => $job->getType(), @@ -903,10 +904,10 @@ class JobQueueDB extends JobQueue { } /** - * @param IDatabase $db + * @param IReadableDatabase $db * @return ScopedCallback */ - private function getScopedNoTrxFlag( IDatabase $db ) { + private function getScopedNoTrxFlag( IReadableDatabase $db ) { $autoTrx = $db->getFlag( DBO_TRX ); // get current setting $db->clearFlag( DBO_TRX ); // make each query its own transaction diff --git a/includes/page/PageStore.php b/includes/page/PageStore.php index c8fe71a4f5e0..b5a98816ddfe 100644 --- a/includes/page/PageStore.php +++ b/includes/page/PageStore.php @@ -16,7 +16,6 @@ use MediaWiki\Title\TitleParser; use stdClass; use Wikimedia\Assert\Assert; use Wikimedia\Parsoid\Core\LinkTarget as ParsoidLinkTarget; -use Wikimedia\Rdbms\IDatabase; use Wikimedia\Rdbms\ILoadBalancer; use Wikimedia\Rdbms\IReadableDatabase; use Wikimedia\Stats\StatsFactory; @@ -202,7 +201,7 @@ class PageStore implements PageLookup { $row = $this->linkCache->getGoodLinkRow( $namespace, $dbKey, - function ( IDatabase $dbr, $ns, $dbkey, array $options ) + function ( IReadableDatabase $dbr, $ns, $dbkey, array $options ) use ( $conds, $caller, &$hitOrMiss ) { $hitOrMiss = 'miss'; diff --git a/includes/user/User.php b/includes/user/User.php index 79c1049a4b26..d67a9f389003 100644 --- a/includes/user/User.php +++ b/includes/user/User.php @@ -1251,11 +1251,11 @@ class User implements Authority, UserIdentity, UserEmailContact { * protected against race conditions using a compare-and-set (CAS) mechanism * based on comparing $this->mTouched with the user_touched field. * - * @param IDatabase $db + * @param IReadableDatabase $db * @param array $conditions WHERE conditions for use with Database::update * @return array WHERE conditions for use with Database::update */ - protected function makeUpdateConditions( IDatabase $db, array $conditions ) { + protected function makeUpdateConditions( IReadableDatabase $db, array $conditions ) { if ( $this->mTouched ) { // CAS check: only update if the row wasn't changed since it was loaded. $conditions['user_touched'] = $db->timestamp( $this->mTouched ); diff --git a/maintenance/rebuildrecentchanges.php b/maintenance/rebuildrecentchanges.php index 8b99e5d8eee6..aa25858891ae 100644 --- a/maintenance/rebuildrecentchanges.php +++ b/maintenance/rebuildrecentchanges.php @@ -26,6 +26,7 @@ require_once __DIR__ . '/Maintenance.php'; use Wikimedia\Rdbms\IDatabase; +use Wikimedia\Rdbms\IReadableDatabase; use Wikimedia\Rdbms\SelectQueryBuilder; /** @@ -366,7 +367,7 @@ class RebuildRecentchanges extends Maintenance { /** * Find rc_id values that have a user with one of the specified groups * - * @param IDatabase $db + * @param IReadableDatabase $db * @param string[] $groups * @param array $conds Extra query conditions * @return int[] |