From: daniel Date: Thu, 12 May 2016 18:44:04 +0000 (+0200) Subject: Use InterwikiLookup in Title. X-Git-Tag: 1.31.0-rc.0~6876 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22lang_raccourcis%22%2C%22module=%24nom_module%22%29%20.%20%22?a=commitdiff_plain;h=f7f36419096e6e8b1b22223c8f2536c6deaa6ca6;p=lhc%2Fweb%2Fwiklou.git Use InterwikiLookup in Title. This makes the use of the global InterwikiLookup singleton more explicit in the Title class. It does not remove the strong binding between Title and InterwikiLookup. Change-Id: Iaeb7c418af17fe19f170487f5364040da6052699 --- diff --git a/includes/Title.php b/includes/Title.php index b996defffd..6a5bbf71ca 100644 --- a/includes/Title.php +++ b/includes/Title.php @@ -22,6 +22,7 @@ * @file */ use MediaWiki\Linker\LinkTarget; +use MediaWiki\Interwiki\InterwikiLookup; use MediaWiki\MediaWikiServices; /** @@ -170,6 +171,18 @@ class Title implements LinkTarget { return MediaWikiServices::getInstance()->getTitleFormatter(); } + /** + * B/C kludge: provide an InterwikiLookup for use by Title. + * Ideally, Title would have no methods that need this. + * Avoid usage of this singleton by using TitleValue + * and the associated services when possible. + * + * @return InterwikiLookup + */ + private static function getInterwikiLookup() { + return MediaWikiServices::getInstance()->getInterwikiLookup(); + } + /** * @access protected */ @@ -760,7 +773,7 @@ class Title implements LinkTarget { */ public function isLocal() { if ( $this->isExternal() ) { - $iw = Interwiki::fetch( $this->mInterwiki ); + $iw = self::getInterwikiLookup()->fetch( $this->mInterwiki ); if ( $iw ) { return $iw->isLocal(); } @@ -808,7 +821,7 @@ class Title implements LinkTarget { return false; } - return Interwiki::fetch( $this->mInterwiki )->isTranscludable(); + return self::getInterwikiLookup()->fetch( $this->mInterwiki )->isTranscludable(); } /** @@ -821,7 +834,7 @@ class Title implements LinkTarget { return false; } - return Interwiki::fetch( $this->mInterwiki )->getWikiID(); + return self::getInterwikiLookup()->fetch( $this->mInterwiki )->getWikiID(); } /** @@ -1677,7 +1690,7 @@ class Title implements LinkTarget { $query = self::fixUrlQueryArgs( $query, $query2 ); - $interwiki = Interwiki::fetch( $this->mInterwiki ); + $interwiki = self::getInterwikiLookup()->fetch( $this->mInterwiki ); if ( $interwiki ) { $namespace = $this->getNsText(); if ( $namespace != '' ) {