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

Required as it is needed for cache_config_disabled which extends cache_config_writer. More...

Inheritance diagram for cache_disabled:
cache cache_loader

Public Member Functions

 __construct (cache_definition $definition, cache_store $store, $loader=null)
 Constructs the cache. More...
 
 delete ($key, $recurse=true)
 Deletes an item from the cache. More...
 
 delete_many (array $keys, $recurse=true)
 Deletes many items at once from the cache. More...
 
 get ($key, $strictness=IGNORE_MISSING)
 Gets a key from the cache. More...
 
 get_many (array $keys, $strictness=IGNORE_MISSING)
 Gets many keys at once from the cache. More...
 
 has ($key)
 Test is a cache has a key. More...
 
 has ($key, $tryloadifpossible=false)
 Checks if the cache has the requested key. More...
 
 has_all (array $keys)
 Checks if the cache has all of the requested keys. More...
 
 has_any (array $keys)
 Checks if the cache has any of the requested keys. More...
 
 purge ()
 Purges all items from the cache. More...
 
 purge_current_user ()
 Subclasses may support purging cache of all data belonging to the current user. More...
 
 set ($key, $data)
 Sets a key value pair in the cache. More...
 
 set_identifiers (array $identifiers)
 Alters the identifiers that have been provided to the definition. More...
 
 set_many (array $keyvaluearray)
 Sets many key value pairs in the cache at once. More...
 

Static Public Member Functions

static compare_purge_tokens ($tokena, $tokenb)
 Compare a pair of purge tokens. More...
 
static get_purge_token ($reset=false)
 Get a 'purge' token used for cache invalidation handling. More...
 
static make ($component, $area, array $identifiers=array(), $unused=null)
 Creates a new cache instance for a pre-defined definition. More...
 
static make_from_params ($mode, $component, $area, array $identifiers=array(), array $options=array())
 Creates a new cache instance based upon the given params. More...
 
static now ($float=false)
 Returns the timestamp from the first request for the time from the cache API. More...
 

Protected Member Functions

 deep_clone ($value)
 Creates a reference free clone of the given value. More...
 
 delete_from_persist_cache ()
 
 get_datasource ()
 Returns the data source associated with this cache. More...
 
 get_definition ()
 Returns the cache definition. More...
 
 get_from_persist_cache ()
 
 get_loader ()
 Returns the loader associated with this instance. More...
 
 get_store ()
 Returns the cache store. More...
 
 handle_invalidation_events ()
 Process any outstanding invalidation events for the cache we are registering,. More...
 
 has_a_ttl ()
 Returns true if the cache is making use of a ttl. More...
 
 is_in_persist_cache ()
 
 is_using_persist_cache ()
 
 parse_key ($key)
 Parses the key turning it into a string (or array is required) suitable to be passed to the cache store. More...
 
 requires_serialisation ($value, $depth=1)
 Checks to see if a var requires serialisation. More...
 
 set_data_source (cache_data_source $datasource)
 Set the data source for this cache. More...
 
 set_in_persist_cache ()
 
 set_is_sub_loader ($setting=true)
 Used to inform the loader of its state as a sub loader, or as the top of the chain. More...
 
 set_loader (cache_loader $loader)
 Set the loader for this cache. More...
 
 static_acceleration_delete ($key)
 Deletes an item from the static acceleration array. More...
 
 static_acceleration_get ($key)
 Returns the item from the static acceleration array if it exists there. More...
 
 static_acceleration_has ($key)
 Returns true if the requested key exists within the static acceleration array. More...
 
 static_acceleration_purge ()
 Purge the static acceleration cache.
 
 static_acceleration_set ($key, $data)
 Sets a key value pair into the static acceleration array. More...
 
 store_supports_key_awareness ()
 Returns true if the store supports key awareness. More...
 
 store_supports_native_locking ()
 Returns true if the store natively supports locking. More...
 
 store_supports_native_ttl ()
 Returns true if the cache store supports native ttl. More...
 
 unref ($data)
 Removes references where required. More...
 
 use_static_acceleration ()
 Returns true if this cache is making use of the static acceleration array. More...
 

Protected Attributes

bool $perfdebug = false
 Gets set to true if we want to collect performance information about the cache API.
 
strubg $storetype = 'unknown'
 Gets set to the class name of the store during initialisation. More...
 
bool $subloader = false
 Determines if this loader is a sub loader, not the top of the chain.
 

Static Protected Attributes

static int $now
 We need a timestamp to use within the cache API. More...
 
static string $purgetoken
 A purge token used to distinguish between multiple cache purges in the same second. More...
 

Detailed Description

Required as it is needed for cache_config_disabled which extends cache_config_writer.

The cache loader class used when the Cache has been disabled.

License
http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later

Constructor & Destructor Documentation

◆ __construct()

cache_disabled::__construct ( cache_definition  $definition,
cache_store  $store,
  $loader = null 
)

Constructs the cache.

Parameters
cache_definition$definition
cache_store$store
null$loaderUnused.

Reimplemented from cache.

Member Function Documentation

◆ compare_purge_tokens()

static cache::compare_purge_tokens (   $tokena,
  $tokenb 
)
staticinherited

Compare a pair of purge tokens.

If the two tokens are identical, then the return value is 0. If the time component of token A is newer than token B, then a positive value is returned. If the time component of token B is newer than token A, then a negative value is returned.

Note: This function is intended for use from within the Cache API only and not by plugins, or cache stores.

Parameters
string$tokena
string$tokenb
Return values
int

◆ deep_clone()

cache::deep_clone (   $value)
protectedinherited

Creates a reference free clone of the given value.

Parameters
mixed$value
Return values
mixed

◆ delete()

cache_disabled::delete (   $key,
  $recurse = true 
)

Deletes an item from the cache.

Parameters
int | string$keyUnused.
bool$recurseUnused.
Return values
bool

Reimplemented from cache.

◆ delete_from_persist_cache()

cache::delete_from_persist_cache ( )
protectedinherited

◆ delete_many()

cache_disabled::delete_many ( array  $keys,
  $recurse = true 
)

Deletes many items at once from the cache.

Parameters
array$keysUnused.
bool$recurseUnused.
Return values
int

Reimplemented from cache.

◆ get()

cache_disabled::get (   $key,
  $strictness = IGNORE_MISSING 
)

Gets a key from the cache.

Parameters
int | string$key
int$strictnessUnused.
Return values
bool

Reimplemented from cache.

◆ get_datasource()

cache::get_datasource ( )
protectedinherited

Returns the data source associated with this cache.

Since
Moodle 2.4.4
Return values
cache_data_source|false

◆ get_definition()

cache::get_definition ( )
protectedinherited

Returns the cache definition.

Return values
cache_definition

◆ get_from_persist_cache()

cache::get_from_persist_cache ( )
protectedinherited

◆ get_loader()

cache::get_loader ( )
protectedinherited

Returns the loader associated with this instance.

Since
Moodle 2.4.4
Return values
cache|false

◆ get_many()

cache_disabled::get_many ( array  $keys,
  $strictness = IGNORE_MISSING 
)

Gets many keys at once from the cache.

Parameters
array$keys
int$strictnessUnused.
Return values
array

Reimplemented from cache.

◆ get_purge_token()

static cache::get_purge_token (   $reset = false)
staticinherited

Get a 'purge' token used for cache invalidation handling.

Note: This function is intended for use from within the Cache API only and not by plugins, or cache stores.

Parameters
bool$resetWhether to reset the token and generate a new one.
Return values
string

◆ get_store()

cache::get_store ( )
protectedinherited

Returns the cache store.

Return values
cache_store

◆ handle_invalidation_events()

cache::handle_invalidation_events ( )
protectedinherited

Process any outstanding invalidation events for the cache we are registering,.

Identifiers and event invalidation are not compatible with each other at this time. As a result the cache does not need to consider identifiers when working out what to invalidate.

◆ has() [1/2]

cache_loader::has (   $key)
inherited

Test is a cache has a key.

The use of the has methods is strongly discouraged. In a high load environment the cache may well change between the test and any subsequent action (get, set, delete etc). Instead it is recommended to write your code in such a way they it performs the following steps:

  1. Attempt to retrieve the information.
  2. Generate the information.
  3. Attempt to set the information

Its also worth mentioning that not all stores support key tests. For stores that don't support key tests this functionality is mimicked by using the equivalent get method. Just one more reason you should not use these methods unless you have a very good reason to do so.

Parameters
string | int$key
Return values
boolTrue if the cache has the requested key, false otherwise.

◆ has() [2/2]

cache_disabled::has (   $key,
  $tryloadifpossible = false 
)

Checks if the cache has the requested key.

Parameters
int | string$keyUnused.
bool$tryloadifpossibleUnused.
Return values
bool

Reimplemented from cache.

◆ has_a_ttl()

cache::has_a_ttl ( )
protectedinherited

Returns true if the cache is making use of a ttl.

Return values
bool

◆ has_all()

cache_disabled::has_all ( array  $keys)

Checks if the cache has all of the requested keys.

Parameters
array$keysUnused.
Return values
bool

Reimplemented from cache.

◆ has_any()

cache_disabled::has_any ( array  $keys)

Checks if the cache has any of the requested keys.

Parameters
array$keysUnused.
Return values
bool

Reimplemented from cache.

◆ is_in_persist_cache()

cache::is_in_persist_cache ( )
protectedinherited

◆ is_using_persist_cache()

cache::is_using_persist_cache ( )
protectedinherited

◆ make()

static cache::make (   $component,
  $area,
array  $identifiers = array(),
  $unused = null 
)
staticinherited

Creates a new cache instance for a pre-defined definition.

Parameters
string$componentThe component for the definition
string$areaThe area for the definition
array$identifiersAny additional identifiers that should be provided to the definition.
string$unusedUsed to be datasourceaggregate but that was removed and this is now unused.
Return values
cache_application|cache_session|cache_store

◆ make_from_params()

static cache::make_from_params (   $mode,
  $component,
  $area,
array  $identifiers = array(),
array  $options = array() 
)
staticinherited

Creates a new cache instance based upon the given params.

Parameters
int$modeOne of cache_store::MODE_*
string$componentThe component this cache relates to.
string$areaThe area this cache relates to.
array$identifiersAny additional identifiers that should be provided to the definition.
array$optionsAn array of options, available options are:
  • simplekeys : Set to true if the keys you will use are a-zA-Z0-9_
  • simpledata : Set to true if the type of the data you are going to store is scalar, or an array of scalar vars
  • staticacceleration : If set to true the cache will hold onto data passing through it.
  • staticaccelerationsize : The max size for the static acceleration array.
Return values
cache_application|cache_session|cache_store

◆ now()

static cache::now (   $float = false)
staticinherited

Returns the timestamp from the first request for the time from the cache API.

This stamp needs to be used for all ttl and time based operations to ensure that we don't end up with timing issues.

Parameters
bool$floatWhether to use floating precision accuracy.
Return values
int|float

◆ parse_key()

cache::parse_key (   $key)
protectedinherited

Parses the key turning it into a string (or array is required) suitable to be passed to the cache store.

Parameters
string | int$keyAs passed to get|set|delete etc.
Return values
string|arrayString unless the store supports multi-identifiers in which case an array if returned.

Reimplemented in cache_session.

◆ purge()

cache_disabled::purge ( )

Purges all items from the cache.

Return values
bool

Reimplemented from cache.

◆ purge_current_user()

cache::purge_current_user ( )
inherited

Subclasses may support purging cache of all data belonging to the current user.

Reimplemented in cache_session.

◆ requires_serialisation()

cache::requires_serialisation (   $value,
  $depth = 1 
)
protectedinherited

Checks to see if a var requires serialisation.

Parameters
mixed$valueThe value to check.
int$depthUsed to ensure we don't enter an endless loop (think recursion).
Return values
boolReturns true if the value is going to require serialisation in order to ensure a reference free copy or false if its safe to clone.

◆ set()

cache_disabled::set (   $key,
  $data 
)

Sets a key value pair in the cache.

Parameters
int | string$keyUnused.
mixed$dataUnused.
Return values
bool

Reimplemented from cache.

◆ set_data_source()

cache::set_data_source ( cache_data_source  $datasource)
protectedinherited

Set the data source for this cache.

Parameters
cache_data_source$datasource

◆ set_identifiers()

cache::set_identifiers ( array  $identifiers)
inherited

Alters the identifiers that have been provided to the definition.

This is an advanced method and should not be used unless really needed. It allows the developer to slightly alter the definition without having to re-establish the cache. It will cause more processing as the definition will need to clear and reprepare some of its properties.

Parameters
array$identifiers

◆ set_in_persist_cache()

cache::set_in_persist_cache ( )
protectedinherited

◆ set_is_sub_loader()

cache::set_is_sub_loader (   $setting = true)
protectedinherited

Used to inform the loader of its state as a sub loader, or as the top of the chain.

This is important as it ensures that we do not have more than one loader keeping static acceleration data. Subloaders need to be "pure" loaders in the sense that they are used to store and retrieve information from stores or the next loader/data source in the chain. Nothing fancy, nothing flash.

Parameters
bool$setting

◆ set_loader()

cache::set_loader ( cache_loader  $loader)
protectedinherited

Set the loader for this cache.

Parameters
cache_loader$loader

◆ set_many()

cache_disabled::set_many ( array  $keyvaluearray)

Sets many key value pairs in the cache at once.

Parameters
array$keyvaluearrayUnused.
Return values
int

Reimplemented from cache.

◆ static_acceleration_delete()

cache::static_acceleration_delete (   $key)
protectedinherited

Deletes an item from the static acceleration array.

Parameters
string | int$keyAs given to get|set|delete
Return values
boolTrue on success, false otherwise.

◆ static_acceleration_get()

cache::static_acceleration_get (   $key)
protectedinherited

Returns the item from the static acceleration array if it exists there.

Parameters
string$keyThe parsed key
Return values
mixed|falseDereferenced data from the static acceleration array or false if it wasn't there.

◆ static_acceleration_has()

cache::static_acceleration_has (   $key)
protectedinherited

Returns true if the requested key exists within the static acceleration array.

Parameters
string$keyThe parsed key
Return values
bool

◆ static_acceleration_set()

cache::static_acceleration_set (   $key,
  $data 
)
protectedinherited

Sets a key value pair into the static acceleration array.

Parameters
string$keyThe parsed key
mixed$data
Return values
bool

◆ store_supports_key_awareness()

cache::store_supports_key_awareness ( )
protectedinherited

Returns true if the store supports key awareness.

Return values
bool

◆ store_supports_native_locking()

cache::store_supports_native_locking ( )
protectedinherited

Returns true if the store natively supports locking.

Return values
bool

◆ store_supports_native_ttl()

cache::store_supports_native_ttl ( )
protectedinherited

Returns true if the cache store supports native ttl.

Return values
bool

◆ unref()

cache::unref (   $data)
protectedinherited

Removes references where required.

Parameters
stdClass | array$data
Return values
mixedWhat ever was put in but without any references.

◆ use_static_acceleration()

cache::use_static_acceleration ( )
protectedinherited

Returns true if this cache is making use of the static acceleration array.

Return values
bool

Reimplemented in cache_session.

Member Data Documentation

◆ $now

int cache::$now
staticprotectedinherited

We need a timestamp to use within the cache API.

This stamp needs to be used for all ttl and time based operations to ensure that we don't end up with timing issues.

◆ $purgetoken

string cache::$purgetoken
staticprotectedinherited

A purge token used to distinguish between multiple cache purges in the same second.

This is in the format <microtime>-<random string>.

◆ $storetype

strubg cache::$storetype = 'unknown'
protectedinherited

Gets set to the class name of the store during initialisation.

This is used several times in the cache class internally and having it here helps speed up processing.


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