*/
class Interwiki {
// Cache - removes oldest entry when it hits limit
- protected static $smCache = array();
+ protected static $smCache = [];
const CACHE_LIMIT = 100; // 0 means unlimited, any other value is max number of entries.
/** @var string The interwiki prefix, (e.g. "Meatball", or the language prefix "de") */
protected static function load( $prefix ) {
global $wgInterwikiExpiry;
- $iwData = array();
- if ( !Hooks::run( 'InterwikiLoadPrefix', array( $prefix, &$iwData ) ) ) {
+ $iwData = [];
+ if ( !Hooks::run( 'InterwikiLoadPrefix', [ $prefix, &$iwData ] ) ) {
return Interwiki::loadFromArray( $iwData );
}
$row = $dbr->selectRow(
'interwiki',
Interwiki::selectFields(),
- array( 'iw_prefix' => $prefix ),
+ [ 'iw_prefix' => $prefix ],
__METHOD__
);
* @since 1.19
*/
protected static function getAllPrefixesCached( $local ) {
- global $wgInterwikiCache, $wgInterwikiScopes, $wgInterwikiFallbackSite;
- static $db, $site;
+ global $wgInterwikiScopes, $wgInterwikiFallbackSite;
+ static $site;
wfDebug( __METHOD__ . "()\n" );
- $data = array();
+ $data = [];
try {
- if ( !$db ) {
- $db = CdbReader::open( $wgInterwikiCache );
- }
/* Resolve site name */
if ( $wgInterwikiScopes >= 3 && !$site ) {
- $site = $db->get( '__sites:' . wfWikiID() );
+ $site = self::getCacheValue( '__sites:' . wfWikiID() );
+
if ( $site == '' ) {
$site = $wgInterwikiFallbackSite;
}
}
// List of interwiki sources
- $sources = array();
+ $sources = [];
// Global Level
if ( $wgInterwikiScopes >= 2 ) {
$sources[] = '__global';
$sources[] = wfWikiID();
foreach ( $sources as $source ) {
- $list = $db->get( "__list:{$source}" );
+ $list = self::getCacheValue( '__list:' . $source );
foreach ( explode( ' ', $list ) as $iw_prefix ) {
- $row = $db->get( "{$source}:{$iw_prefix}" );
+ $row = self::getCacheValue( "{$source}:{$iw_prefix}" );
if ( !$row ) {
continue;
}
continue;
}
- $data[$iw_prefix] = array(
+ $data[$iw_prefix] = [
'iw_prefix' => $iw_prefix,
'iw_url' => $iw_url,
'iw_local' => $iw_local,
- );
+ ];
}
}
} catch ( CdbException $e ) {
protected static function getAllPrefixesDB( $local ) {
$db = wfGetDB( DB_SLAVE );
- $where = array();
+ $where = [];
if ( $local !== null ) {
if ( $local == 1 ) {
$res = $db->select( 'interwiki',
self::selectFields(),
- $where, __METHOD__, array( 'ORDER BY' => 'iw_prefix' )
+ $where, __METHOD__, [ 'ORDER BY' => 'iw_prefix' ]
);
- $retval = array();
+ $retval = [];
foreach ( $res as $row ) {
$retval[] = (array)$row;
}
* @return string[]
*/
public static function selectFields() {
- return array(
+ return [
'iw_prefix',
'iw_url',
'iw_api',
'iw_wikiid',
'iw_local',
'iw_trans'
- );
+ ];
}
}