MediaWiki REL1_34
LocalisationCacheBulkLoad Class Reference

A localisation cache optimised for loading large amounts of data for many languages. More...

Inheritance diagram for LocalisationCacheBulkLoad:
Collaboration diagram for LocalisationCacheBulkLoad:

Public Member Functions

 getItem ( $code, $key)
 
 getSubitem ( $code, $key, $subkey)
 
 recache ( $code)
 
 unload ( $code)
 
- Public Member Functions inherited from LocalisationCache
 __construct (ServiceOptions $options, LCStore $store, LoggerInterface $logger, array $clearStoreCallbacks, LanguageNameUtils $langNameUtils)
 For constructor parameters, see the documentation in DefaultSettings.php for $wgLocalisationCacheConf.
 
 disableBackend ()
 Disable the storage backend.
 
 getCompiledPluralRules ( $code)
 Get the compiled plural rules for a given language from the XML files.
 
 getMessagesDirs ()
 Gets the combined list of messages dirs from core and extensions.
 
 getPluralRules ( $code)
 Get the plural rules for a given language from the XML files.
 
 getPluralRuleTypes ( $code)
 Get the plural rule types for a given language from the XML files.
 
 getSubitemList ( $code, $key)
 Get the list of subitem keys for a given item.
 
 initShallowFallback ( $primaryCode, $fallbackCode)
 Create a fallback from one language to another, without creating a complete persistent cache.
 
 isExpired ( $code)
 Returns true if the cache identified by $code is missing or expired.
 
 isMergeableKey ( $key)
 Returns true if the given key is mergeable, that is, if it is an associative array which can be merged through a fallback sequence.
 
 readJSONFile ( $fileName)
 Read a JSON file containing localisation messages.
 
 unloadAll ()
 Unload all data.
 

Protected Member Functions

 readPHPFile ( $fileName, $fileType)
 
 trimCache ()
 Unload cached languages until there are less than $this->maxLoadedLangs.
 
- Protected Member Functions inherited from LocalisationCache
 buildPreload ( $data)
 Build the preload item from the given pre-cache data.
 
 initLanguage ( $code)
 Initialise a language in this object.
 
 loadItem ( $code, $key)
 Load an item into the cache.
 
 loadPluralFile ( $fileName)
 Load a plural XML file with the given filename, compile the relevant rules, and save the compiled rules in a process-local cache.
 
 loadPluralFiles ()
 Load the plural XML files.
 
 loadSubitem ( $code, $key, $subkey)
 Load a subitem into the cache.
 
 mergeExtensionItem ( $codeSequence, $key, &$value, $fallbackValue)
 Given an array mapping language code to localisation value, such as is found in extension *.i18n.php files, iterate through a fallback sequence to merge the given data with an existing primary value.
 
 mergeItem ( $key, &$value, $fallbackValue)
 Merge two localisation values, a primary and a fallback, overwriting the primary value in place.
 
 mergeMagicWords (&$value, $fallbackValue)
 
 readSourceFilesAndRegisterDeps ( $code, &$deps)
 Read the data from the source files for a given language, and register the relevant dependencies in the $deps array.
 

Private Attributes

 $fileCache = []
 A cache of the contents of data files.
 
 $maxLoadedLangs = 10
 Maximum number of languages that may be loaded into $this->data.
 
 $mruLangs = []
 Most recently used languages.
 

Additional Inherited Members

- Static Public Member Functions inherited from LocalisationCache
static getStoreFromConf (array $conf, $fallbackCacheDir)
 Return a suitable LCStore as specified by the given configuration.
 
- Public Attributes inherited from LocalisationCache
const VERSION = 4
 
- Static Public Attributes inherited from LocalisationCache
static $allKeys
 All item keys.
 
static $magicWordKeys = [ 'magicWords' ]
 Keys for items that are formatted like $magicWords.
 
static $mergeableAliasListKeys = [ 'specialPageAliases' ]
 Keys for items which contain an array of arrays of equivalent aliases for each subitem.
 
static $mergeableListKeys = []
 Keys for items which are a numbered array.
 
static $mergeableMapKeys
 Keys for items which consist of associative arrays, which may be merged by a fallback sequence.
 
static $optionalMergeKeys = [ 'bookstoreList' ]
 Keys for items which contain an associative array, and may be merged if the primary value contains the special array key "inherit".
 
static $preloadedKeys = [ 'dateFormats', 'namespaceNames' ]
 Keys which are loaded automatically by initLanguage()
 
static $splitKeys = [ 'messages' ]
 Keys for items where the subitems are stored in the backend separately.
 
- Protected Attributes inherited from LocalisationCache
 $data = []
 The cache data.
 

Detailed Description

A localisation cache optimised for loading large amounts of data for many languages.

Used by rebuildLocalisationCache.php.

Definition at line 25 of file LocalisationCacheBulkLoad.php.

Member Function Documentation

◆ getItem()

LocalisationCacheBulkLoad::getItem (   $code,
  $key 
)
Parameters
string$code
string$key
Returns
mixed

Reimplemented from LocalisationCache.

Definition at line 76 of file LocalisationCacheBulkLoad.php.

◆ getSubitem()

LocalisationCacheBulkLoad::getSubitem (   $code,
  $key,
  $subkey 
)
Parameters
string$code
string$key
string$subkey
Returns
mixed

Reimplemented from LocalisationCache.

Definition at line 89 of file LocalisationCacheBulkLoad.php.

◆ readPHPFile()

LocalisationCacheBulkLoad::readPHPFile (   $fileName,
  $fileType 
)
protected
Parameters
string$fileName
string$fileType
Returns
array|mixed

Reimplemented from LocalisationCache.

Definition at line 50 of file LocalisationCacheBulkLoad.php.

References LocalisationCache\$data, serialize(), and unserialize().

◆ recache()

LocalisationCacheBulkLoad::recache (   $code)
Parameters
string$code

Reimplemented from LocalisationCache.

Definition at line 99 of file LocalisationCacheBulkLoad.php.

References trimCache().

◆ trimCache()

LocalisationCacheBulkLoad::trimCache ( )
protected

Unload cached languages until there are less than $this->maxLoadedLangs.

Definition at line 117 of file LocalisationCacheBulkLoad.php.

References unload(), and wfDebug().

Referenced by recache().

◆ unload()

LocalisationCacheBulkLoad::unload (   $code)
Parameters
string$code

Reimplemented from LocalisationCache.

Definition at line 109 of file LocalisationCacheBulkLoad.php.

Referenced by trimCache().

Member Data Documentation

◆ $fileCache

LocalisationCacheBulkLoad::$fileCache = []
private

A cache of the contents of data files.

Core files are serialized to avoid using ~1GB of RAM during a recache.

Definition at line 31 of file LocalisationCacheBulkLoad.php.

◆ $maxLoadedLangs

LocalisationCacheBulkLoad::$maxLoadedLangs = 10
private

Maximum number of languages that may be loaded into $this->data.

Definition at line 43 of file LocalisationCacheBulkLoad.php.

◆ $mruLangs

LocalisationCacheBulkLoad::$mruLangs = []
private

Most recently used languages.

Uses the linked-list aspect of PHP hashtables to keep the most recently used language codes at the end of the array, and the language codes that are ready to be deleted at the beginning.

Definition at line 38 of file LocalisationCacheBulkLoad.php.


The documentation for this class was generated from the following file: