X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FrefreshLinks.php;h=3f48abbb8ef05edfe627cebf6cc327850c3f3732;hb=4f8378775b3145339d03977468cf6be74afae05d;hp=9d5d39fd8ef149001cba4ddff396ef1b21f70c4b;hpb=6f7e982df6479e27c3b17f2deda8404ef55f50e6;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/refreshLinks.php b/maintenance/refreshLinks.php index 9d5d39fd8e..3f48abbb8e 100644 --- a/maintenance/refreshLinks.php +++ b/maintenance/refreshLinks.php @@ -21,6 +21,8 @@ * @ingroup Maintenance */ +use MediaWiki\MediaWikiServices; +use MediaWiki\Storage\RevisionRecord; use Wikimedia\Rdbms\IDatabase; require_once __DIR__ . '/Maintenance.php'; @@ -170,8 +172,8 @@ class RefreshLinks extends Maintenance { } } else { if ( !$end ) { - $maxPage = $dbr->selectField( 'page', 'max(page_id)', false ); - $maxRD = $dbr->selectField( 'redirect', 'max(rd_from)', false ); + $maxPage = $dbr->selectField( 'page', 'max(page_id)', '', __METHOD__ ); + $maxRD = $dbr->selectField( 'redirect', 'max(rd_from)', '', __METHOD__ ); $end = max( $maxPage, $maxRD ); } $this->output( "Refreshing redirects table.\n" ); @@ -230,7 +232,7 @@ class RefreshLinks extends Maintenance { } $rt = null; - $content = $page->getContent( Revision::RAW ); + $content = $page->getContent( RevisionRecord::RAW ); if ( $content !== null ) { $rt = $content->getUltimateRedirectTarget(); } @@ -258,7 +260,7 @@ class RefreshLinks extends Maintenance { public static function fixLinksFromArticle( $id, $ns = false ) { $page = WikiPage::newFromID( $id ); - LinkCache::singleton()->clear(); + MediaWikiServices::getInstance()->getLinkCache()->clear(); if ( $page === null ) { return; @@ -267,17 +269,14 @@ class RefreshLinks extends Maintenance { return; } - $content = $page->getContent( Revision::RAW ); - if ( $content === null ) { - return; - } - - $updates = $content->getSecondaryDataUpdates( - $page->getTitle(), /* $old = */ null, /* $recursive = */ false ); - foreach ( $updates as $update ) { - DeferredUpdates::addUpdate( $update ); - DeferredUpdates::doUpdates(); - } + // Defer updates to post-send but then immediately execute deferred updates; + // this is the simplest way to run all updates immediately (including updates + // scheduled by other updates). + $page->doSecondaryDataUpdates( [ + 'defer' => DeferredUpdates::POSTSEND, + 'recursive' => false, + ] ); + DeferredUpdates::doUpdates(); } /**