X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FWikiMap.php;h=37f85ea27c1a6acd9ac712038145914b2d446a1a;hb=b225a84ff95badf1e407c3952e1e0c540507a8e8;hp=4534414c9f7c7be71df7319b94bf12ff728332cc;hpb=b5906606e1aa1a795231fb813b766818b1dd6c25;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/WikiMap.php b/includes/WikiMap.php index 4534414c9f..37f85ea27c 100644 --- a/includes/WikiMap.php +++ b/includes/WikiMap.php @@ -65,6 +65,14 @@ class WikiMap { $path = $wgConf->get( 'wgArticlePath', $wikiID, $major, [ 'lang' => $minor, 'site' => $major ] ); + + // If we don't have a canonical server or a path containing $1, the + // WikiReference isn't going to function properly. Just return null in + // that case. + if ( !is_string( $canonicalServer ) || !is_string( $path ) || strpos( $path, '$1' ) === false ) { + return null; + } + return new WikiReference( $canonicalServer, $path, $server ); } @@ -73,13 +81,8 @@ class WikiMap { * @return WikiReference|null WikiReference object or null if the wiki was not found */ private static function getWikiWikiReferenceFromSites( $wikiID ) { - static $siteStore = null; - if ( !$siteStore ) { - // Replace once T114471 got fixed and don't do the caching here. - $siteStore = SiteSQLStore::newInstance(); - } - - $site = $siteStore->getSite( $wikiID ); + $siteLookup = \MediaWiki\MediaWikiServices::getInstance()->getSiteLookup(); + $site = $siteLookup->getSite( $wikiID ); if ( !$site instanceof MediaWikiSite ) { // Abort if not a MediaWikiSite, as this is about Wikis