/** * Fetch an Interwiki object * * @return Interwiki Object, or null if not valid * @param $prefix string Interwiki prefix to use */ public static function fetch($prefix) { global $wgContLang; if ($prefix == '') { return null; } $prefix = $wgContLang->lc($prefix); if (isset(self::$smCache[$prefix])) { return self::$smCache[$prefix]; } global $wgInterwikiCache; if ($wgInterwikiCache) { $iw = Interwiki::getInterwikiCached($prefix); } else { $iw = Interwiki::load($prefix); if (!$iw) { $iw = false; } } if (self::CACHE_LIMIT && count(self::$smCache) >= self::CACHE_LIMIT) { reset(self::$smCache); unset(self::$smCache[key(self::$smCache)]); } self::$smCache[$prefix] = $iw; return $iw; }