DokuWiki

It's better when it's simple

User Tools

Site Tools


devel:event:parser_cache_use

PARSER_CACHE_USE

Description:
manipulate the cache validity
DefaultAction:
determine whether or not cached data should be used
Preventable:
yes
Added:
2006-09-16

Signalled by cache versions of parser wrapper functions inc/parserutils.php. Syntax plugins can use this event to provide their own assistance to DokuWiki's cache (from cache key, via cache file location to validity logic) when the syntax extension adds other dependencies to the rendered page.

Passed Data and Result in event handler

The passed dokuwiki\extension\Event has the fields $data and $result.

$data is a cache object (CacheParser or extended on that object) – refer inc/Cache/CacheParser.php.

For handling the event, key properties of the cache object are:

  • $page, if present the wiki page id, may not always be present, e.g. when called for locale XHTML files
  • $file, source file
  • $mode, renderer mode (e.g. 'xhtml') or 'i' for instructions
  • $key, primary identifier, will be md5 hashed part of the cache file
  • $ext, secondary identifier, extension of the cache file, readable part
  • $cache, cache name generated by getCacheName()
  • $depends, array of dependencies used to determine cache validity

In the BEFORE event handler the cache object can be modified. Some examples are: extending the $depends field, using more cachefiles for variants of the same source file (see also struct plugin) or preventing and replacing the default makeDefaultCacheDecision cache check.

In the AFTER event handler the $result field is set with the result of the makeDefaultCacheDecision() method. The AFTER event handler can modify this field.

See also

devel/event/parser_cache_use.txt · Last modified: 2022-02-08 23:20 by Klap-in

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki