From 85a52faa37f548fe26688ac3e182ae1e5eda3033 Mon Sep 17 00:00:00 2001 From: Yuriy Shnitkovskiy Date: Tue, 10 Jan 2017 11:51:50 +0200 Subject: [PATCH] Removed deprecated usages of Interwiki methods in core Change-Id: Ibd25968660466c44189ccb01df1d8bec6e1b207c --- includes/api/ApiQuerySiteinfo.php | 3 +- includes/import/ImportStreamSource.php | 4 +- includes/title/MediaWikiTitleCodec.php | 6 ++- maintenance/namespaceDupes.php | 3 +- .../includes/interwiki/InterwikiTest.php | 43 ++++++++++--------- 5 files changed, 34 insertions(+), 25 deletions(-) diff --git a/includes/api/ApiQuerySiteinfo.php b/includes/api/ApiQuerySiteinfo.php index 6fc6aa370c..5093608297 100644 --- a/includes/api/ApiQuerySiteinfo.php +++ b/includes/api/ApiQuerySiteinfo.php @@ -23,6 +23,7 @@ * * @file */ +use MediaWiki\MediaWikiServices; /** * A query action to return meta information about the wiki site. @@ -388,7 +389,7 @@ class ApiQuerySiteinfo extends ApiQueryBase { $langCode = isset( $params['inlanguagecode'] ) ? $params['inlanguagecode'] : ''; $langNames = Language::fetchLanguageNames( $langCode ); - $getPrefixes = Interwiki::getAllPrefixes( $local ); + $getPrefixes = MediaWikiServices::getInstance()->getInterwikiLookup()->getAllPrefixes( $local ); $extraLangPrefixes = $this->getConfig()->get( 'ExtraInterlanguageLinkPrefixes' ); $localInterwikis = $this->getConfig()->get( 'LocalInterwikis' ); $data = []; diff --git a/includes/import/ImportStreamSource.php b/includes/import/ImportStreamSource.php index 0c12ebb60f..8034400bad 100644 --- a/includes/import/ImportStreamSource.php +++ b/includes/import/ImportStreamSource.php @@ -23,6 +23,7 @@ * @file * @ingroup SpecialPage */ +use MediaWiki\MediaWikiServices; /** * Imports a XML dump from a file (either from file upload, files on disk, or HTTP) @@ -148,7 +149,8 @@ class ImportStreamSource implements ImportSource { # Look up the first interwiki prefix, and let the foreign site handle # subsequent interwiki prefixes $firstIwPrefix = strtok( $interwiki, ':' ); - $firstIw = Interwiki::fetch( $firstIwPrefix ); + $interwikiLookup = MediaWikiServices::getInstance()->getInterwikiLookup(); + $firstIw = $interwikiLookup->fetch( $firstIwPrefix ); if ( !$firstIw ) { return Status::newFatal( 'importbadinterwiki' ); } diff --git a/includes/title/MediaWikiTitleCodec.php b/includes/title/MediaWikiTitleCodec.php index a937e757f1..1bf05d978c 100644 --- a/includes/title/MediaWikiTitleCodec.php +++ b/includes/title/MediaWikiTitleCodec.php @@ -21,6 +21,7 @@ * @license GPL 2+ * @author Daniel Kinzler */ +use MediaWiki\MediaWikiServices; use MediaWiki\Linker\LinkTarget; /** @@ -309,6 +310,7 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser { if ( preg_match( $prefixRegexp, $dbkey, $m ) ) { $p = $m[1]; $ns = $this->language->getNsIndex( $p ); + $interwikiLookup = MediaWikiServices::getInstance()->getInterwikiLookup(); if ( $ns !== false ) { # Ordinary namespace $dbkey = $m[2]; @@ -318,13 +320,13 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser { if ( $this->language->getNsIndex( $x[1] ) ) { # Disallow Talk:File:x type titles... throw new MalformedTitleException( 'title-invalid-talk-namespace', $text ); - } elseif ( Interwiki::isValidInterwiki( $x[1] ) ) { + } elseif ( $interwikiLookup->isValidInterwiki( $x[1] ) ) { // TODO: get rid of global state! # Disallow Talk:Interwiki:x type titles... throw new MalformedTitleException( 'title-invalid-talk-namespace', $text ); } } - } elseif ( Interwiki::isValidInterwiki( $p ) ) { + } elseif ( $interwikiLookup->isValidInterwiki( $p ) ) { # Interwiki link $dbkey = $m[2]; $parts['interwiki'] = $this->language->lc( $p ); diff --git a/maintenance/namespaceDupes.php b/maintenance/namespaceDupes.php index b705500945..522871d9df 100644 --- a/maintenance/namespaceDupes.php +++ b/maintenance/namespaceDupes.php @@ -25,6 +25,7 @@ */ use MediaWiki\Linker\LinkTarget; +use MediaWiki\MediaWikiServices; require_once __DIR__ . '/Maintenance.php'; @@ -224,7 +225,7 @@ class NamespaceConflictChecker extends Maintenance { * @return array */ private function getInterwikiList() { - $result = Interwiki::getAllPrefixes(); + $result = MediaWikiServices::getInstance()->getInterwikiLookup()->getAllPrefixes(); $prefixes = []; foreach ( $result as $row ) { $prefixes[] = $row['iw_prefix']; diff --git a/tests/phpunit/includes/interwiki/InterwikiTest.php b/tests/phpunit/includes/interwiki/InterwikiTest.php index 137dfb77ec..b1ad77a7e5 100644 --- a/tests/phpunit/includes/interwiki/InterwikiTest.php +++ b/tests/phpunit/includes/interwiki/InterwikiTest.php @@ -82,31 +82,32 @@ class InterwikiTest extends MediaWikiTestCase { $this->setWgInterwikiCache( false ); + $interwikiLookup = MediaWikiServices::getInstance()->getInterwikiLookup(); $this->assertEquals( [ $dewiki, $zzwiki ], - Interwiki::getAllPrefixes(), + $interwikiLookup->getAllPrefixes(), 'getAllPrefixes()' ); $this->assertEquals( [ $dewiki ], - Interwiki::getAllPrefixes( true ), + $interwikiLookup->getAllPrefixes( true ), 'getAllPrefixes()' ); $this->assertEquals( [ $zzwiki ], - Interwiki::getAllPrefixes( false ), + $interwikiLookup->getAllPrefixes( false ), 'getAllPrefixes()' ); - $this->assertTrue( Interwiki::isValidInterwiki( 'de' ), 'known prefix is valid' ); - $this->assertFalse( Interwiki::isValidInterwiki( 'xyz' ), 'unknown prefix is valid' ); + $this->assertTrue( $interwikiLookup->isValidInterwiki( 'de' ), 'known prefix is valid' ); + $this->assertFalse( $interwikiLookup->isValidInterwiki( 'xyz' ), 'unknown prefix is valid' ); - $this->assertNull( Interwiki::fetch( null ), 'no prefix' ); - $this->assertFalse( Interwiki::fetch( 'xyz' ), 'unknown prefix' ); + $this->assertNull( $interwikiLookup->fetch( null ), 'no prefix' ); + $this->assertFalse( $interwikiLookup->fetch( 'xyz' ), 'unknown prefix' ); - $interwiki = Interwiki::fetch( 'de' ); + $interwiki = $interwikiLookup->fetch( 'de' ); $this->assertInstanceOf( 'Interwiki', $interwiki ); - $this->assertSame( $interwiki, Interwiki::fetch( 'de' ), 'in-process caching' ); + $this->assertSame( $interwiki, $interwikiLookup->fetch( 'de' ), 'in-process caching' ); $this->assertSame( 'http://de.wikipedia.org/wiki/', $interwiki->getURL(), 'getURL' ); $this->assertSame( 'http://de.wikipedia.org/w/api.php', $interwiki->getAPI(), 'getAPI' ); @@ -115,7 +116,7 @@ class InterwikiTest extends MediaWikiTestCase { $this->assertSame( false, $interwiki->isTranscludable(), 'isTranscludable' ); Interwiki::invalidateCache( 'de' ); - $this->assertNotSame( $interwiki, Interwiki::fetch( 'de' ), 'invalidate cache' ); + $this->assertNotSame( $interwiki, $interwikiLookup->fetch( 'de' ), 'invalidate cache' ); } /** @@ -190,22 +191,23 @@ class InterwikiTest extends MediaWikiTestCase { $this->setWgInterwikiCache( $cdbFile ); + $interwikiLookup = MediaWikiServices::getInstance()->getInterwikiLookup(); $this->assertEquals( [ $dewiki, $zzwiki ], - Interwiki::getAllPrefixes(), + $interwikiLookup->getAllPrefixes(), 'getAllPrefixes()' ); - $this->assertTrue( Interwiki::isValidInterwiki( 'de' ), 'known prefix is valid' ); - $this->assertTrue( Interwiki::isValidInterwiki( 'zz' ), 'known prefix is valid' ); + $this->assertTrue( $interwikiLookup->isValidInterwiki( 'de' ), 'known prefix is valid' ); + $this->assertTrue( $interwikiLookup->isValidInterwiki( 'zz' ), 'known prefix is valid' ); - $interwiki = Interwiki::fetch( 'de' ); + $interwiki = $interwikiLookup->fetch( 'de' ); $this->assertInstanceOf( 'Interwiki', $interwiki ); $this->assertSame( 'http://de.wikipedia.org/wiki/', $interwiki->getURL(), 'getURL' ); $this->assertSame( true, $interwiki->isLocal(), 'isLocal' ); - $interwiki = Interwiki::fetch( 'zz' ); + $interwiki = $interwikiLookup->fetch( 'zz' ); $this->assertInstanceOf( 'Interwiki', $interwiki ); $this->assertSame( 'http://zzwiki.org/wiki/', $interwiki->getURL(), 'getURL' ); @@ -236,22 +238,23 @@ class InterwikiTest extends MediaWikiTestCase { $this->setWgInterwikiCache( $cdbData ); + $interwikiLookup = MediaWikiServices::getInstance()->getInterwikiLookup(); $this->assertEquals( [ $dewiki, $zzwiki ], - Interwiki::getAllPrefixes(), + $interwikiLookup->getAllPrefixes(), 'getAllPrefixes()' ); - $this->assertTrue( Interwiki::isValidInterwiki( 'de' ), 'known prefix is valid' ); - $this->assertTrue( Interwiki::isValidInterwiki( 'zz' ), 'known prefix is valid' ); + $this->assertTrue( $interwikiLookup->isValidInterwiki( 'de' ), 'known prefix is valid' ); + $this->assertTrue( $interwikiLookup->isValidInterwiki( 'zz' ), 'known prefix is valid' ); - $interwiki = Interwiki::fetch( 'de' ); + $interwiki = $interwikiLookup->fetch( 'de' ); $this->assertInstanceOf( 'Interwiki', $interwiki ); $this->assertSame( 'http://de.wikipedia.org/wiki/', $interwiki->getURL(), 'getURL' ); $this->assertSame( true, $interwiki->isLocal(), 'isLocal' ); - $interwiki = Interwiki::fetch( 'zz' ); + $interwiki = $interwikiLookup->fetch( 'zz' ); $this->assertInstanceOf( 'Interwiki', $interwiki ); $this->assertSame( 'http://zzwiki.org/wiki/', $interwiki->getURL(), 'getURL' ); -- 2.20.1