diff options
author | Florian Pritz <bluewind@xinu.at> | 2013-11-09 22:00:47 +0100 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2013-11-09 22:00:47 +0100 |
commit | 853303f104c576ddaaa2e645b7f4334bd2157053 (patch) | |
tree | e964941154db00ecb8052a70cfe5987d6ee06dd3 /application | |
parent | 4b149b042e97e623e6902b770bbb827cff1986c1 (diff) |
implement cache_function to easily cache return values of functions
Signed-off-by: Florian Pritz <bluewind@xinu.at>
Diffstat (limited to 'application')
-rw-r--r-- | application/helpers/filebin_helper.php | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/application/helpers/filebin_helper.php b/application/helpers/filebin_helper.php index 71ce7e6ca..e5637ce94 100644 --- a/application/helpers/filebin_helper.php +++ b/application/helpers/filebin_helper.php @@ -265,4 +265,22 @@ function stateful_client() return true; } +/** + * Cache the result of the function call + * @param key cache key to use + * @param ttl time to live for the cache entry + * @param function function to call + * @return return value of function (will be cached) + */ +function cache_function($key, $ttl, $function) +{ + $CI =& get_instance(); + $CI->load->driver('cache', array('adapter' => $CI->config->item("cache_backend"))); + if (! $content = $CI->cache->get($key)) { + $content = $function(); + $CI->cache->save($key, $content, $ttl); + } + return $content; +} + # vim: set noet: |