X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fpage%2FWikiPage.php;h=a7f53df8be388ea01d36e5bb7e9eab9300fc82d0;hb=7babd362babcbf7f20adb8e12edb4f4bc1d4249f;hp=6af794573093f10b5a397577ae4d0e12b8ca715c;hpb=1a40e0cc86b6ee0706606ded3ea243dfde4a414c;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/page/WikiPage.php b/includes/page/WikiPage.php index 6af7945730..a7f53df8be 100644 --- a/includes/page/WikiPage.php +++ b/includes/page/WikiPage.php @@ -21,8 +21,8 @@ */ use MediaWiki\Edit\PreparedEdit; -use \MediaWiki\Logger\LoggerFactory; -use \MediaWiki\MediaWikiServices; +use MediaWiki\Logger\LoggerFactory; +use MediaWiki\MediaWikiServices; use Wikimedia\Assert\Assert; use Wikimedia\Rdbms\FakeResultWrapper; use Wikimedia\Rdbms\IDatabase; @@ -434,8 +434,9 @@ class WikiPage implements Page, IDBAccessObject { if ( is_int( $from ) ) { list( $index, $opts ) = DBAccessObjectUtils::getDBOptions( $from ); - $data = $this->pageDataFromTitle( wfGetDB( $index ), $this->mTitle, $opts ); $loadBalancer = MediaWikiServices::getInstance()->getDBLoadBalancer(); + $db = $loadBalancer->getConnection( $index ); + $data = $this->pageDataFromTitle( $db, $this->mTitle, $opts ); if ( !$data && $index == DB_REPLICA @@ -444,7 +445,8 @@ class WikiPage implements Page, IDBAccessObject { ) { $from = self::READ_LATEST; list( $index, $opts ) = DBAccessObjectUtils::getDBOptions( $from ); - $data = $this->pageDataFromTitle( wfGetDB( $index ), $this->mTitle, $opts ); + $db = $loadBalancer->getConnection( $index ); + $data = $this->pageDataFromTitle( $db, $this->mTitle, $opts ); } } else { // No idea from where the caller got this data, assume replica DB. @@ -1425,16 +1427,17 @@ class WikiPage implements Page, IDBAccessObject { ) { $baseRevId = null; if ( $edittime && $sectionId !== 'new' ) { - $dbr = wfGetDB( DB_REPLICA ); + $lb = MediaWikiServices::getInstance()->getDBLoadBalancer(); + $dbr = $lb->getConnection( DB_REPLICA ); $rev = Revision::loadFromTimestamp( $dbr, $this->mTitle, $edittime ); // Try the master if this thread may have just added it. // This could be abstracted into a Revision method, but we don't want // to encourage loading of revisions by timestamp. if ( !$rev - && wfGetLB()->getServerCount() > 1 - && wfGetLB()->hasOrMadeRecentMasterChanges() + && $lb->getServerCount() > 1 + && $lb->hasOrMadeRecentMasterChanges() ) { - $dbw = wfGetDB( DB_MASTER ); + $dbw = $lb->getConnection( DB_MASTER ); $rev = Revision::loadFromTimestamp( $dbw, $this->mTitle, $edittime ); } if ( $rev ) { @@ -2125,15 +2128,6 @@ class WikiPage implements Page, IDBAccessObject { $edit->newContent = $content; $edit->oldContent = $this->getContent( Revision::RAW ); - // NOTE: B/C for hooks! don't use these fields! - $edit->newText = $edit->newContent - ? ContentHandler::getContentText( $edit->newContent ) - : ''; - $edit->oldText = $edit->oldContent - ? ContentHandler::getContentText( $edit->oldContent ) - : ''; - $edit->pst = $edit->pstContent ? $edit->pstContent->serialize( $serialFormat ) : ''; - if ( $edit->output ) { $edit->output->setCacheTime( wfTimestampNow() ); } @@ -3353,6 +3347,8 @@ class WikiPage implements Page, IDBAccessObject { */ public static function onArticleDelete( Title $title ) { // Update existence markers on article/talk tabs... + // Clear Backlink cache first so that purge jobs use more up-to-date backlink information + BacklinkCache::get( $title )->clear(); $other = $title->getOtherPage(); $other->purgeSquid();