Moodle APIs 3.9
Moodle 3.9.13+ (Build: 20220325)
|
Cache Loader. More...
Public Member Functions | |
delete ($key, $recurse=true) | |
Delete the given key from the cache. More... | |
delete_many (array $keys, $recurse=true) | |
Delete all of the given keys from the cache. More... | |
get ($key, $strictness=IGNORE_MISSING) | |
Retrieves the value for the given key from the cache. More... | |
get_many (array $keys, $strictness=IGNORE_MISSING) | |
Retrieves an array of values for an array of keys. More... | |
has ($key) | |
Test is a cache has a key. More... | |
has_all (array $keys) | |
Test is a cache has all of the given keys. More... | |
has_any (array $keys) | |
Test if a cache has at least one of the given keys. More... | |
set ($key, $data) | |
Sends a key => value pair to the cache. More... | |
set_many (array $keyvaluearray) | |
Sends several key => value pairs to the cache. More... | |
Cache Loader.
This cache loader interface provides the required structure for classes that wish to be interacted with as a means of accessing and interacting with a cache.
Can be implemented by any class wishing to be a cache loader.
cache_loader::delete | ( | $key, | |
$recurse = true |
|||
) |
Delete the given key from the cache.
string | int | $key | The key to delete. |
bool | $recurse | When set to true the key will also be deleted from all stacked cache loaders and their stores. This happens by default and ensure that all the caches are consistent. It is NOT recommended to change this. |
bool | True of success, false otherwise. |
Implemented in cache, cache_application, cache_session, and cache_disabled.
cache_loader::delete_many | ( | array | $keys, |
$recurse = true |
|||
) |
Delete all of the given keys from the cache.
array | $keys | The key to delete. |
bool | $recurse | When set to true the key will also be deleted from all stacked cache loaders and their stores. This happens by default and ensure that all the caches are consistent. It is NOT recommended to change this. |
int | The number of items successfully deleted. |
Implemented in cache, cache_application, cache_session, and cache_disabled.
cache_loader::get | ( | $key, | |
$strictness = IGNORE_MISSING |
|||
) |
Retrieves the value for the given key from the cache.
string | int | $key | The key for the data being requested. |
int | $strictness | One of IGNORE_MISSING or MUST_EXIST. |
mixed | The data retrieved from the cache, or false if the key did not exist within the cache. If MUST_EXIST was used then an exception will be thrown if the key does not exist within the cache. |
Implemented in cache, cache_application, cache_session, and cache_disabled.
cache_loader::get_many | ( | array | $keys, |
$strictness = IGNORE_MISSING |
|||
) |
Retrieves an array of values for an array of keys.
Using this function comes with potential performance implications. Not all cache stores will support get_many/set_many operations and in order to replicate this functionality will call the equivalent singular method for each item provided. This should not deter you from using this function as there is a performance benefit in situations where the cache store does support it, but you should be aware of this fact.
array | $keys | The keys of the data being requested. |
int | $strictness | One of IGNORE_MISSING or MUST_EXIST. |
array | An array of key value pairs for the items that could be retrieved from the cache. If MUST_EXIST was used and not all keys existed within the cache then an exception will be thrown. Otherwise any key that did not exist will have a data value of false within the results. |
Implemented in cache, cache_application, cache_session, and cache_disabled.
cache_loader::has | ( | $key | ) |
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:
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.
string | int | $key |
bool | True if the cache has the requested key, false otherwise. |
cache_loader::has_all | ( | array | $keys | ) |
Test is a cache has all of the given keys.
It is strongly recommended to avoid the use of this function if not absolutely required. In a high load environment the cache may well change between the test and any subsequent action (get, set, delete etc).
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.
array | $keys |
bool | True if the cache has all of the given keys, false otherwise. |
Implemented in cache, cache_session, and cache_disabled.
cache_loader::has_any | ( | array | $keys | ) |
Test if a cache has at least one of the given keys.
It is strongly recommended to avoid the use of this function if not absolutely required. In a high load environment the cache may well change between the test and any subsequent action (get, set, delete etc).
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.
array | $keys |
bool | True if the cache has at least one of the given keys |
Implemented in cache, cache_session, and cache_disabled.
cache_loader::set | ( | $key, | |
$data | |||
) |
Sends a key => value pair to the cache.
// This code will add four entries to the cache, one for each url. $cache->set('main', 'http://moodle.org'); $cache->set('docs', 'http://docs.moodle.org'); $cache->set('tracker', 'http://tracker.moodle.org'); $cache->set('qa', 'http://qa.moodle.net');
string | int | $key | The key for the data being requested. |
mixed | $data | The data to set against the key. |
bool | True on success, false otherwise. |
Implemented in cache, cache_application, cache_session, and cache_disabled.
cache_loader::set_many | ( | array | $keyvaluearray | ) |
Sends several key => value pairs to the cache.
Using this function comes with potential performance implications. Not all cache stores will support get_many/set_many operations and in order to replicate this functionality will call the equivalent singular method for each item provided. This should not deter you from using this function as there is a performance benefit in situations where the cache store does support it, but you should be aware of this fact.
// This code will add four entries to the cache, one for each url. $cache->set_many(array( 'main' => 'http://moodle.org', 'docs' => 'http://docs.moodle.org', 'tracker' => 'http://tracker.moodle.org', 'qa' => ''http://qa.moodle.net' ));
array | $keyvaluearray | An array of key => value pairs to send to the cache. |
int | The number of items successfully set. It is up to the developer to check this matches the number of items. ... if they care that is. |
Implemented in cache, cache_application, cache_session, and cache_disabled.