Class for caching rendered output, i.e. HTML as well as associated data, for the latest revision of a page.

Main features edit

For detailed information, see Manual:Parser cache. This is a summary:

  • supports 'varying keys', i.e. the use of different cache keys for a page or revision, based on certain 'options'.
  • because of this, supports the use of multiple ParserCache instances so that multiple cache entries can exist side by side (MW 1.36+).
  • consists of two tiers, each stored with its own key, to avoid cache fragmentation that may happen as a result of having multiple cache entries:
    • one containing a CacheTime object for holding metadata about cache expiration and parsing 'options'. Metadata can be retrieved using getMetadata().
    • another containing the ParserOutput object, with values from the options specified in the metadata of the first tier. It can be retrieved with getDirty() or get().
  • allows for cache to be created ('populated')
  • allows for cache to be removed/replaced:
    • after the revision timestamp is updated and the cache entry is invalidated (marked as 'dirty')
    • after it expires. The removal of expired entries is called 'pruning'. See also ParserOutput::updateCacheExpiry().
    • when there are reasons for enforcing it (e.g. cache optimisation), in which case the process of removal is called 'eviction'.

Instantiation edit


Public methods edit

Public methods not for internal use only include:

  • getDirty() - retrieve the ParserOutput from ParserCache, even if it is outdated.
  • get() - retrieve the ParserOutput from ParserCache; false if not found or outdated.
  • getMetadata() - return the ParserCache metadata about the given page considering the given options.
  • save() - store ParserCache object.
  • deleteOptionsKey()