2. HTML entities
3. placeholders created by the parser
*/
- global $wgParser;
- if ( isset( $wgParser ) && $wgParser->UniqPrefix() != '' ) {
- $marker = '|' . $wgParser->UniqPrefix() . '[\-a-zA-Z0-9]+';
- } else {
- $marker = '';
- }
+ $marker = '|' . Parser::MARKER_PREFIX . '[\-a-zA-Z0-9]+';
// this one is needed when the text is inside an HTML markup
$htmlfix = '|<[^>]+$|^[^<>]*>';
}
if ( $action == 'add' ) {
+ // More efficient than array_merge(), about 2.5 times.
foreach ( $pair as $from => $to ) {
- // to ensure that $from and $to not be left blank
- // so $this->translate() could always return a string
- if ( $from || $to ) {
- // more efficient than array_merge(), about 2.5 times.
- $this->mTables[$variant]->setPair( $from, $to );
- }
+ $this->mTables[$variant]->setPair( $from, $to );
}
} elseif ( $action == 'remove' ) {
$this->mTables[$variant]->removeArray( $pair );
* @param bool $fromCache Load from memcached? Defaults to true.
*/
function loadTables( $fromCache = true ) {
- global $wgLangConvMemc;
+ global $wgLanguageConverterCacheType;
if ( $this->mTablesLoaded ) {
return;
$this->mTablesLoaded = true;
$this->mTables = false;
+ $cache = ObjectCache::getInstance( $wgLanguageConverterCacheType );
if ( $fromCache ) {
wfProfileIn( __METHOD__ . '-cache' );
- $this->mTables = $wgLangConvMemc->get( $this->mCacheKey );
+ $this->mTables = $cache->get( $this->mCacheKey );
wfProfileOut( __METHOD__ . '-cache' );
}
if ( !$this->mTables || !array_key_exists( self::CACHE_VERSION_KEY, $this->mTables ) ) {
$this->postLoadTables();
$this->mTables[self::CACHE_VERSION_KEY] = true;
- $wgLangConvMemc->set( $this->mCacheKey, $this->mTables, 43200 );
+ $cache->set( $this->mCacheKey, $this->mTables, 43200 );
wfProfileOut( __METHOD__ . '-recache' );
}
}
if ( $recursive ) {
foreach ( $sublinks as $link ) {
$s = $this->parseCachedTable( $code, $link, $recursive );
- $ret = array_merge( $ret, $s );
+ $ret = $s + $ret;
}
}