Moodle APIs 3.9
Moodle 3.9.13+ (Build: 20220325)
Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
cache_helper Class Reference

Static Public Member Functions

static clean_old_session_data ($output=false)
 Cleans old session data from cache stores used for session based definitions. More...
 
static cron ()
 Runs cron routines for MUC.
 
static early_get_cache_plugins ()
 Returns an array of plugins without using core methods. More...
 
static get_cache_stores (cache_definition $definition)
 Returns the cache stores to be used with the given definition. More...
 
static get_cachelock_for_store (cache_store $store)
 Returns a cache_lock instance suitable for use with the store. More...
 
static get_class_for_mode ($mode)
 Returns the class for use as a cache loader for the given mode. More...
 
static get_definition_name ($definition)
 Returns the translated name of the definition. More...
 
static get_site_identifier ()
 Returns the site identifier. More...
 
static get_site_version ()
 Returns the site version. More...
 
static get_stats ()
 Return the stats collected so far. More...
 
static get_stores_suitable_for_definition (cache_definition $definition)
 Returns stores suitable for use with a given definition. More...
 
static get_stores_suitable_for_mode_default ()
 Returns an array of stores that would meet the requirements for every definition. More...
 
static hash_key ($key, cache_definition $definition)
 Hashes a descriptive key to make it shorter and still unique. More...
 
static invalidate_by_definition ($component, $area, array $identifiers=array(), $keys=array())
 Invalidates a given set of keys from a given definition. More...
 
static invalidate_by_event ($event, array $keys)
 Invalidates a given set of keys by means of an event. More...
 
static purge_all ($usewriter=false)
 Purge all of the cache stores of all of their data. More...
 
static purge_by_definition ($component, $area, array $identifiers=array())
 Purges the cache for a specific definition. More...
 
static purge_by_event ($event)
 Purges a cache of all information on a given event. More...
 
static purge_store ($storename, cache_config $config=null)
 Purges a store given its name. More...
 
static purge_stores_used_by_definition ($component, $area)
 Purges all of the stores used by a definition. More...
 
static ready_for_early_init ()
 Returns true if the cache API can be initialised before Moodle has finished initialising itself. More...
 
static record_cache_hit ($store, $definition, $hits=1)
 Record a cache hit in the stats for the given store and definition. More...
 
static record_cache_miss ($store, $definition, $misses=1)
 Record a cache miss in the stats for the given store and definition. More...
 
static record_cache_set ($store, $definition, $sets=1)
 Record a cache set in the stats for the given store and definition. More...
 
static update_definitions ($coreonly=false)
 Finds all definitions and updates them within the cache config file. More...
 
static update_site_identifier ($siteidentifier)
 Update the site identifier stored by the cache API. More...
 
static warnings (array $stores=null)
 Returns an array of warnings from the cache API. More...
 

Protected Member Functions

 __construct ()
 Constructs an instance of the cache_helper class. More...
 

Static Protected Member Functions

static ensure_ready_for_stats ($store, $storeclass, $definition, $mode=cache_store::MODE_APPLICATION)
 Ensure that the stats array is ready to collect information for the given store and definition. More...
 
static get_definition_stat_id_and_mode ($definition)
 Returns a string to describe the definition. More...
 
static initialise_cachestore_instances (array $stores, cache_definition $definition)
 Internal function for initialising an array of stores against a given cache definition. More...
 
static instance ()
 Returns an instance of the cache_helper. More...
 

Protected Attributes

array $definitions = array()
 Used as a data store for initialised definitions.
 
array $stores = array()
 Used as a data store for initialised cache stores We use this because we want to avoid establishing multiple instances of a single store.
 

Static Protected Attributes

static cache_helper $instance
 The instance of the cache helper.
 
static string $siteidentifier = null
 The site identifier used by the cache. More...
 
static array $stats = array()
 Statistics gathered by the cache API during its operation will be used here.
 

Constructor & Destructor Documentation

◆ __construct()

cache_helper::__construct ( )
protected

Constructs an instance of the cache_helper class.

Again for internal use only.

Member Function Documentation

◆ clean_old_session_data()

static cache_helper::clean_old_session_data (   $output = false)
static

Cleans old session data from cache stores used for session based definitions.

Parameters
bool$outputIf set to true output will be given.

◆ early_get_cache_plugins()

static cache_helper::early_get_cache_plugins ( )
static

Returns an array of plugins without using core methods.

This function explicitly does NOT use core functions as it will in some circumstances be called before Moodle has finished initialising. This happens when loading configuration for instance.

Return values
string

◆ ensure_ready_for_stats()

static cache_helper::ensure_ready_for_stats (   $store,
  $storeclass,
  $definition,
  $mode = cache_store::MODE_APPLICATION 
)
staticprotected

Ensure that the stats array is ready to collect information for the given store and definition.

Parameters
string$store
string$storeclass
string$definitionA string that identifies the definition.
int$modeOne of cache_store::MODE_*. Since 2.9.

◆ get_cache_stores()

static cache_helper::get_cache_stores ( cache_definition  $definition)
static

Returns the cache stores to be used with the given definition.

Parameters
cache_definition$definition
Return values
array

◆ get_cachelock_for_store()

static cache_helper::get_cachelock_for_store ( cache_store  $store)
static

Returns a cache_lock instance suitable for use with the store.

Parameters
cache_store$store
Return values
cache_lock_interface

◆ get_class_for_mode()

static cache_helper::get_class_for_mode (   $mode)
static

Returns the class for use as a cache loader for the given mode.

Parameters
int$modeOne of cache_store::MODE_
Return values
string
Exceptions
coding_exception

◆ get_definition_name()

static cache_helper::get_definition_name (   $definition)
static

Returns the translated name of the definition.

Parameters
cache_definition$definition
Return values
lang_string

◆ get_definition_stat_id_and_mode()

static cache_helper::get_definition_stat_id_and_mode (   $definition)
staticprotected

Returns a string to describe the definition.

This method supports the definition as a string due to legacy requirements. It is backwards compatible when a string is passed but is not accurate.

Since
2.9
Parameters
cache_definition | string$definition
Return values
string

◆ get_site_identifier()

static cache_helper::get_site_identifier ( )
static

Returns the site identifier.

Return values
string

◆ get_site_version()

static cache_helper::get_site_version ( )
static

Returns the site version.

Return values
string

◆ get_stats()

static cache_helper::get_stats ( )
static

Return the stats collected so far.

Return values
array

◆ get_stores_suitable_for_definition()

static cache_helper::get_stores_suitable_for_definition ( cache_definition  $definition)
static

Returns stores suitable for use with a given definition.

Parameters
cache_definition$definition
Return values
cache_store[]

◆ get_stores_suitable_for_mode_default()

static cache_helper::get_stores_suitable_for_mode_default ( )
static

Returns an array of stores that would meet the requirements for every definition.

These stores would be 100% suitable to map as defaults for cache modes.

Return values
array[]An array of stores, keys are the store names.

◆ hash_key()

static cache_helper::hash_key (   $key,
cache_definition  $definition 
)
static

Hashes a descriptive key to make it shorter and still unique.

Parameters
string | int$key
cache_definition$definition
Return values
string

◆ initialise_cachestore_instances()

static cache_helper::initialise_cachestore_instances ( array  $stores,
cache_definition  $definition 
)
staticprotected

Internal function for initialising an array of stores against a given cache definition.

Parameters
array$stores
cache_definition$definition
Return values
cache_store[]

◆ instance()

static cache_helper::instance ( )
staticprotected

Returns an instance of the cache_helper.

This is designed for internal use only and acts as a static store. @staticvar null $instance

Return values
cache_helper

◆ invalidate_by_definition()

static cache_helper::invalidate_by_definition (   $component,
  $area,
array  $identifiers = array(),
  $keys = array() 
)
static

Invalidates a given set of keys from a given definition.

Todo:
Invalidating by definition should also add to the event cache so that sessions can be invalidated (when required).
Parameters
string$component
string$area
array$identifiers
array$keys
Return values
boolean

◆ invalidate_by_event()

static cache_helper::invalidate_by_event (   $event,
array  $keys 
)
static

Invalidates a given set of keys by means of an event.

Events cannot determine what identifiers might need to be cleared. Event based purge and invalidation are only supported on caches without identifiers.

Parameters
string$event
array$keys

◆ purge_all()

static cache_helper::purge_all (   $usewriter = false)
static

Purge all of the cache stores of all of their data.

Think twice before calling this method. It will purge ALL caches regardless of whether they have been used recently or anything. This will involve full setup of the cache + the purge operation. On a site using caching heavily this WILL be painful.

Parameters
bool$usewriterIf set to true the cache_config_writer class is used. This class is special as it avoids it is still usable when caches have been disabled. Please use this option only if you really must. It's purpose is to allow the cache to be purged when it would be otherwise impossible.

◆ purge_by_definition()

static cache_helper::purge_by_definition (   $component,
  $area,
array  $identifiers = array() 
)
static

Purges the cache for a specific definition.

Parameters
string$component
string$area
array$identifiers
Return values
bool

◆ purge_by_event()

static cache_helper::purge_by_event (   $event)
static

Purges a cache of all information on a given event.

Events cannot determine what identifiers might need to be cleared. Event based purge and invalidation are only supported on caches without identifiers.

Parameters
string$event

◆ purge_store()

static cache_helper::purge_store (   $storename,
cache_config  $config = null 
)
static

Purges a store given its name.

Parameters
string$storename
cache_config$config
Return values
bool

◆ purge_stores_used_by_definition()

static cache_helper::purge_stores_used_by_definition (   $component,
  $area 
)
static

Purges all of the stores used by a definition.

Unlike cache_helper::purge_by_definition this purges all of the data from the stores not just the data relating to the definition. This function is useful when you must purge a definition that requires setup but you don't want to set it up.

Parameters
string$component
string$area

◆ ready_for_early_init()

static cache_helper::ready_for_early_init ( )
static

Returns true if the cache API can be initialised before Moodle has finished initialising itself.

This check is essential when trying to cache the likes of configuration information. It checks to make sure that the cache configuration file has been created which allows use to set up caching when ever is required.

Return values
bool

◆ record_cache_hit()

static cache_helper::record_cache_hit (   $store,
  $definition,
  $hits = 1 
)
static

Record a cache hit in the stats for the given store and definition.

In Moodle 2.9 the $definition argument changed from accepting only a string to accepting a string or a cache_definition instance. It is preferable to pass a cache definition instance.

In Moodle 3.9 the first argument changed to also accept a cache_store.

◆ record_cache_miss()

static cache_helper::record_cache_miss (   $store,
  $definition,
  $misses = 1 
)
static

Record a cache miss in the stats for the given store and definition.

In Moodle 2.9 the $definition argument changed from accepting only a string to accepting a string or a cache_definition instance. It is preferable to pass a cache definition instance.

In Moodle 3.9 the first argument changed to also accept a cache_store.

◆ record_cache_set()

static cache_helper::record_cache_set (   $store,
  $definition,
  $sets = 1 
)
static

Record a cache set in the stats for the given store and definition.

In Moodle 2.9 the $definition argument changed from accepting only a string to accepting a string or a cache_definition instance. It is preferable to pass a cache definition instance.

In Moodle 3.9 the first argument changed to also accept a cache_store.

◆ update_definitions()

static cache_helper::update_definitions (   $coreonly = false)
static

Finds all definitions and updates them within the cache config file.

Parameters
bool$coreonlyIf set to true only core definitions will be updated.

◆ update_site_identifier()

static cache_helper::update_site_identifier (   $siteidentifier)
static

Update the site identifier stored by the cache API.

Parameters
string$siteidentifier
Return values
stringThe new site identifier.

◆ warnings()

static cache_helper::warnings ( array  $stores = null)
static

Returns an array of warnings from the cache API.

The warning returned here are for things like conflicting store instance configurations etc. These get shown on the admin notifications page for example.

Parameters
array | null$storesAn array of stores to get warnings for, or null for all.
Return values
string[]

Member Data Documentation

◆ $siteidentifier

string cache_helper::$siteidentifier = null
staticprotected

The site identifier used by the cache.

Set the first time get_site_identifier is called.


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