summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/diskcache.php51
1 files changed, 51 insertions, 0 deletions
diff --git a/classes/diskcache.php b/classes/diskcache.php
new file mode 100644
index 000000000..fdfc46cb1
--- /dev/null
+++ b/classes/diskcache.php
@@ -0,0 +1,51 @@
+<?php
+class DiskCache {
+ private $dir;
+
+ public function __construct($dir) {
+ $this->dir = basename($dir);
+ }
+
+ public function getDir() {
+ return $this->dir;
+ }
+
+ public function exists($filename) {
+ return file_exists($this->getFullPath($filename));
+ }
+
+ public function getSize($filename) {
+ if ($this->exists($filename))
+ return filesize($this->getFullPath($filename));
+ else
+ return -1;
+ }
+
+ public function getFullPath($filename) {
+ $filename = basename($filename);
+
+ return CACHE_DIR . "/" . $this->dir . "/" . $filename;
+ }
+
+ public function put($filename, $data) {
+ return file_put_contents($this->getFullPath($filename), $data);
+ }
+
+ public function touch($filename) {
+ return touch($this->getFullPath($filename));
+ }
+
+ public function get($filename) {
+ if ($this->exists($filename))
+ return file_get_contents($this->getFullPath($filename));
+ else
+ return null;
+ }
+
+ public function getMimeType($filename) {
+ if ($this->exists($filename))
+ return mime_content_type($this->getFullPath($filename));
+ else
+ return null;
+ }
+}