diff options
author | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-10-28 19:17:36 +0000 |
---|---|---|
committer | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-10-28 19:17:36 +0000 |
commit | 7ddd9521b3f3a397da3b0a6b56238d31414eb4be (patch) | |
tree | 6eb6a9a51db5fa0f5d3cc2ec6de29b9e258b12a1 /engine/classes/ElggFileCache.php | |
parent | bd3484417d170e62bc94e9db81d4ad37e8ddee6a (diff) | |
download | elgg-7ddd9521b3f3a397da3b0a6b56238d31414eb4be.tar.gz elgg-7ddd9521b3f3a397da3b0a6b56238d31414eb4be.tar.bz2 |
Standardized code in all of core, not including language files, tests, or core mods.
git-svn-id: http://code.elgg.org/elgg/trunk@7124 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine/classes/ElggFileCache.php')
-rw-r--r-- | engine/classes/ElggFileCache.php | 110 |
1 files changed, 79 insertions, 31 deletions
diff --git a/engine/classes/ElggFileCache.php b/engine/classes/ElggFileCache.php index f386b7466..2072af620 100644 --- a/engine/classes/ElggFileCache.php +++ b/engine/classes/ElggFileCache.php @@ -3,23 +3,23 @@ * ElggFileCache * Store cached data in a file store. * - * @package Elgg - * @subpackage API + * @package Elgg.Core + * @subpackage Caches */ class ElggFileCache extends ElggCache { /** * Set the Elgg cache. * * @param string $cache_path The cache path. - * @param int $max_age Maximum age in seconds, 0 if no limit. - * @param int $max_size Maximum size of cache in seconds, 0 if no limit. + * @param int $max_age Maximum age in seconds, 0 if no limit. + * @param int $max_size Maximum size of cache in seconds, 0 if no limit. */ function __construct($cache_path, $max_age = 0, $max_size = 0) { - $this->set_variable("cache_path", $cache_path); - $this->set_variable("max_age", $max_age); - $this->set_variable("max_size", $max_size); + $this->setVariable("cache_path", $cache_path); + $this->setVariable("max_age", $max_age); + $this->setVariable("max_size", $max_size); - if ($cache_path=="") { + if ($cache_path == "") { throw new ConfigurationException(elgg_echo('ConfigurationException:NoCachePath')); } } @@ -27,10 +27,28 @@ class ElggFileCache extends ElggCache { /** * Create and return a handle to a file. * - * @param string $filename - * @param string $rw + * @deprecated 1.8 Use ElggFileCache::createFile() + * + * @param string $filename Filename to save as + * @param string $rw Write mode + * + * @return mixed */ protected function create_file($filename, $rw = "rb") { + elgg_deprecated_notice('ElggFileCache::create_file() is deprecated by ::createFile()', 1.8); + + return $this->createFile($filename, $rw); + } + + /** + * Create and return a handle to a file. + * + * @param string $filename Filename to save as + * @param string $rw Write mode + * + * @return mixed + */ + protected function createFile($filename, $rw = "rb") { // Create a filename matrix $matrix = ""; $depth = strlen($filename); @@ -39,13 +57,13 @@ class ElggFileCache extends ElggCache { } // Create full path - $path = $this->get_variable("cache_path") . $matrix; + $path = $this->getVariable("cache_path") . $matrix; if (!is_dir($path)) { mkdir($path, 0700, true); } // Open the file - if ((!file_exists($path . $filename)) && ($rw=="rb")) { + if ((!file_exists($path . $filename)) && ($rw == "rb")) { return false; } @@ -55,7 +73,11 @@ class ElggFileCache extends ElggCache { /** * Create a sanitised filename for the file. * - * @param string $filename + * @deprecated 1.8 Use ElggFileCache::sanitizeFilename() + * + * @param string $filename The filename + * + * @return string */ protected function sanitise_filename($filename) { // @todo : Writeme @@ -64,14 +86,28 @@ class ElggFileCache extends ElggCache { } /** + * Create a sanitised filename for the file. + * + * @param string $filename The filename + * + * @return string + */ + protected function sanitizeFilename($filename) { + // @todo : Writeme + + return $filename; + } + + /** * Save a key * - * @param string $key - * @param string $data + * @param string $key Name + * @param string $data Value + * * @return boolean */ public function save($key, $data) { - $f = $this->create_file($this->sanitise_filename($key), "wb"); + $f = $this->createFile($this->sanitizeFilename($key), "wb"); if ($f) { $result = fwrite($f, $data); fclose($f); @@ -85,18 +121,19 @@ class ElggFileCache extends ElggCache { /** * Load a key * - * @param string $key - * @param int $offset - * @param int $limit + * @param string $key Name + * @param int $offset Offset + * @param int $limit Limit + * * @return string */ public function load($key, $offset = 0, $limit = null) { - $f = $this->create_file($this->sanitise_filename($key)); + $f = $this->createFile($this->sanitizeFilename($key)); if ($f) { - //fseek($f, $offset); if (!$limit) { $limit = -1; } + $data = stream_get_contents($f, $limit, $offset); fclose($f); @@ -110,29 +147,40 @@ class ElggFileCache extends ElggCache { /** * Invalidate a given key. * - * @param string $key + * @param string $key Name + * * @return bool */ public function delete($key) { - $dir = $this->get_variable("cache_path"); - - if (file_exists($dir.$key)) { - return unlink($dir.$key); + $dir = $this->getVariable("cache_path"); + + if (file_exists($dir . $key)) { + return unlink($dir . $key); } return TRUE; } + /** + * This was probably meant to delete everything? + * + * @return void + */ public function clear() { // @todo writeme } + /** + * Preform cleanup and invalidates cache upon object destruction + * + * @throws IOException + */ public function __destruct() { // @todo Check size and age, clean up accordingly $size = 0; - $dir = $this->get_variable("cache_path"); + $dir = $this->getVariable("cache_path"); // Short circuit if both size and age are unlimited - if (($this->get_variable("max_age")==0) && ($this->get_variable("max_size")==0)) { + if (($this->getVariable("max_age") == 0) && ($this->getVariable("max_size") == 0)) { return; } @@ -146,14 +194,14 @@ class ElggFileCache extends ElggCache { // Perform cleanup foreach ($files as $f) { if (!in_array($f, $exclude)) { - $stat = stat($dir.$f); + $stat = stat($dir . $f); // Add size $size .= $stat['size']; // Is this older than my maximum date? - if (($this->get_variable("max_age")>0) && (time() - $stat['mtime'] > $this->get_variable("max_age"))) { - unlink($dir.$f); + if (($this->getVariable("max_age") > 0) && (time() - $stat['mtime'] > $this->getVariable("max_age"))) { + unlink($dir . $f); } // @todo Size |