aboutsummaryrefslogtreecommitdiff
path: root/engine/classes/ElggFileCache.php
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-10-28 19:17:36 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-10-28 19:17:36 +0000
commit7ddd9521b3f3a397da3b0a6b56238d31414eb4be (patch)
tree6eb6a9a51db5fa0f5d3cc2ec6de29b9e258b12a1 /engine/classes/ElggFileCache.php
parentbd3484417d170e62bc94e9db81d4ad37e8ddee6a (diff)
downloadelgg-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.php110
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