diff options
author | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-10-30 19:41:37 +0000 |
---|---|---|
committer | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-10-30 19:41:37 +0000 |
commit | 8f7fe99a01d59ace1db0e54e1dbd28749601cf53 (patch) | |
tree | 99735979efd052382d906e3d044535f5a5615153 /engine/lib/cache.php | |
parent | 5c4b91a531105ddbf873045b65009484b65384dc (diff) | |
download | elgg-8f7fe99a01d59ace1db0e54e1dbd28749601cf53.tar.gz elgg-8f7fe99a01d59ace1db0e54e1dbd28749601cf53.tar.bz2 |
moved file path cache functions into the cache lib which seems to be a more logical location for them
git-svn-id: http://code.elgg.org/elgg/trunk@7133 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine/lib/cache.php')
-rw-r--r-- | engine/lib/cache.php | 111 |
1 files changed, 108 insertions, 3 deletions
diff --git a/engine/lib/cache.php b/engine/lib/cache.php index 639e20f69..8fe7d3562 100644 --- a/engine/lib/cache.php +++ b/engine/lib/cache.php @@ -3,7 +3,112 @@ * Elgg cache * Cache file interface for caching data. * - * @package Elgg - * @subpackage API - * @todo deprecate this file? + * @package Elgg.Core + * @subpackage Cache */ + +/** + * Returns an ElggCache object suitable for caching view + * file load paths to disk under $CONFIG->dataroot. + * + * @todo Can this be done in a cleaner way? + * @todo Swap to memcache etc? + * + * @return ElggFileCache A cache object suitable for caching file load paths. + */ +function elgg_get_filepath_cache() { + global $CONFIG; + + /** + * A default filestore cache using the dataroot. + */ + static $FILE_PATH_CACHE; + + if (!$FILE_PATH_CACHE) { + $FILE_PATH_CACHE = new ElggFileCache($CONFIG->dataroot); + } + + return $FILE_PATH_CACHE; +} + +/** + * Deletes the view file paths cache from disk. + * + * @return bool On success + */ +function elgg_filepath_cache_reset() { + $cache = elgg_get_filepath_cache(); + return $cache->delete('view_paths'); +} + +/** + * Saves $data to the views file paths disk cache as + * 'view_paths'. + * + * @param mixed $data The data + * + * @return bool On success + */ +function elgg_filepath_cache_save($data) { + global $CONFIG; + + if ($CONFIG->viewpath_cache_enabled) { + $cache = elgg_get_filepath_cache(); + return $cache->save('view_paths', $data); + } + + return false; +} + +/** + * Returns the contents of the views file paths cache from disk. + * + * @return mixed Null if simplecache isn't enabled, the contents of the + * views file paths cache if it is. + */ +function elgg_filepath_cache_load() { + global $CONFIG; + + if ($CONFIG->viewpath_cache_enabled) { + $cache = elgg_get_filepath_cache(); + $cached_view_paths = $cache->load('view_paths'); + + if ($cached_view_paths) { + return $cached_view_paths; + } + } + + return NULL; +} + +/** + * Enables the views file paths disk cache. + * + * Uses the 'viewpath_cache_enabled' datalist with a boolean value. + * Resets the views paths cache. + * + * @return null + */ +function elgg_enable_filepath_cache() { + global $CONFIG; + + datalist_set('viewpath_cache_enabled', 1); + $CONFIG->viewpath_cache_enabled = 1; + elgg_filepath_cache_reset(); +} + +/** + * Disables the views file paths disk cache. + * + * Uses the 'viewpath_cache_enabled' datalist with a boolean value. + * Resets the views paths cache. + * + * @return null + */ +function elgg_disable_filepath_cache() { + global $CONFIG; + + datalist_set('viewpath_cache_enabled', 0); + $CONFIG->viewpath_cache_enabled = 0; + elgg_filepath_cache_reset(); +} |