* Variable for tracking which variables are already loaded
* @var array $mLoadedLanguages
*/
- protected $mLoadedLanguages = array();
+ protected $mLoadedLanguages = [];
/**
* @var bool $mInParser
* @return ParserOptions
*/
function getParserOptions() {
- global $wgFullyInitialised, $wgContLang;
+ global $wgUser;
if ( !$this->mParserOptions ) {
- if ( !$wgFullyInitialised ) {
+ if ( !$wgUser->isSafeToLoad() ) {
// $wgUser isn't unstubbable yet, so don't try to get a
// ParserOptions for it. And don't cache this ParserOptions
// either.
- $po = new ParserOptions( new User, $wgContLang );
+ $po = ParserOptions::newFromAnon();
$po->setEditSection( false );
return $po;
}
# Loading code starts
$success = false; # Keep track of success
$staleCache = false; # a cache array with expired data, or false if none has been loaded
- $where = array(); # Debug info, delayed to avoid spamming debug log too much
+ $where = []; # Debug info, delayed to avoid spamming debug log too much
# Hash of the contents is stored in memcache, to detect if data-center cache
# or local cache goes out of date (e.g. due to replace() on some other server)
$dbr = wfGetDB( ( $mode == self::FOR_UPDATE ) ? DB_MASTER : DB_SLAVE );
- $cache = array();
+ $cache = [];
# Common conditions
- $conds = array(
+ $conds = [
'page_is_redirect' => 0,
'page_namespace' => NS_MEDIAWIKI,
- );
+ ];
- $mostused = array();
+ $mostused = [];
if ( $wgAdaptiveMessageCache && $code !== $wgLanguageCode ) {
if ( !isset( $this->mCache[$wgLanguageCode] ) ) {
$this->load( $wgLanguageCode );
$smallConds[] = 'page_len <= ' . intval( $wgMaxMsgCacheEntrySize );
$res = $dbr->select(
- array( 'page', 'revision', 'text' ),
- array( 'page_title', 'old_text', 'old_flags' ),
+ [ 'page', 'revision', 'text' ],
+ [ 'page_title', 'old_text', 'old_flags' ],
$smallConds,
__METHOD__ . "($code)-small"
);
$this->wanCache->touchCheckKey( wfMemcKey( 'messages', $code ) );
// Also delete cached sidebar... just in case it is affected
- $codes = array( $code );
+ $codes = [ $code ];
if ( $code === 'en' ) {
// Delete all sidebars, like for example on action=purge on the
// sidebar messages
$blobStore = $resourceloader->getMessageBlobStore();
$blobStore->updateMessage( $wgContLang->lcfirst( $msg ) );
- Hooks::run( 'MessageCacheReplace', array( $title, $text ) );
+ Hooks::run( 'MessageCacheReplace', [ $title, $text ] );
}
/**
$value = $this->wanCache->get(
wfMemcKey( 'messages', $code, 'hash', 'v1' ),
$curTTL,
- array( wfMemcKey( 'messages', $code ) )
+ [ wfMemcKey( 'messages', $code ) ]
);
if ( !$value ) {
}
}
- return array( $hash, $expired );
+ return [ $hash, $expired ];
}
/**
protected function setValidationHash( $code, array $cache ) {
$this->wanCache->set(
wfMemcKey( 'messages', $code, 'hash', 'v1' ),
- array(
+ [
'hash' => $cache['HASH'],
'latest' => isset( $cache['LATEST'] ) ? $cache['LATEST'] : 0
- ),
+ ],
WANObjectCache::TTL_INDEFINITE
);
}
// Normalise title-case input (with some inlining)
$lckey = MessageCache::normalizeKey( $key );
- Hooks::run( 'MessageCache::get', array( &$lckey ) );
+ Hooks::run( 'MessageCache::get', [ &$lckey ] );
// Loop through each language in the fallback list until we find something useful
$lang = wfGetLangObj( $langcode );
if ( $message !== false ) {
// Fix whitespace
$message = str_replace(
- array(
+ [
# Fix for trailing whitespace, removed by textarea
' ',
# Fix for NBSP, converted to space by firefox
' ',
' ',
- ),
- array(
+ '­'
+ ],
+ [
' ',
"\xc2\xa0",
- "\xc2\xa0"
- ),
+ "\xc2\xa0",
+ "\xc2\xad"
+ ],
$message
);
}
} else {
// XXX: This is not cached in process cache, should it?
$message = false;
- Hooks::run( 'MessagesPreLoad', array( $title, &$message ) );
+ Hooks::run( 'MessagesPreLoad', [ $title, &$message ] );
if ( $message !== false ) {
return $message;
}
* @param Title $title
* @param bool $linestart Whether or not this is at the start of a line
* @param bool $interface Whether this is an interface message
- * @param string $language Language code
+ * @param Language|string $language Language code
* @return ParserOutput|string
*/
public function parse( $text, $title = null, $linestart = true,
$parser = $this->getParser();
$popts = $this->getParserOptions();
$popts->setInterfaceMessage( $interface );
+
+ if ( is_string( $language ) ) {
+ $language = Language::factory( $language );
+ }
$popts->setTargetLanguage( $language );
if ( !$title || !$title instanceof Title ) {
$this->wanCache->touchCheckKey( wfMemcKey( 'messages', $code ) );
}
- $this->mLoadedLanguages = array();
+ $this->mLoadedLanguages = [];
}
/**
$pieces = explode( '/', $key );
if ( count( $pieces ) < 2 ) {
- return array( $key, $wgLanguageCode );
+ return [ $key, $wgLanguageCode ];
}
$lang = array_pop( $pieces );
if ( !Language::fetchLanguageName( $lang, null, 'mw' ) ) {
- return array( $key, $wgLanguageCode );
+ return [ $key, $wgLanguageCode ];
}
$message = implode( '/', $pieces );
- return array( $message, $lang );
+ return [ $message, $lang ];
}
/**
unset( $cache['VERSION'] );
unset( $cache['EXPIRY'] );
// Remove any !NONEXISTENT keys
- $cache = array_diff( $cache, array( '!NONEXISTENT' ) );
+ $cache = array_diff( $cache, [ '!NONEXISTENT' ] );
// Keys may appear with a capital first letter. lcfirst them.
- return array_map( array( $wgContLang, 'lcfirst' ), array_keys( $cache ) );
+ return array_map( [ $wgContLang, 'lcfirst' ], array_keys( $cache ) );
}
}