[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: www/areas/cvs-digest/enzyme
From: Derek Kite <dkite () netidea ! com>
Date: 2004-05-01 3:16:21
Message-ID: 20040501031621.23D029A80 () office ! kde ! org
[Download RAW message or body]
CVS commit by dkite:
Implement cache class.
M +71 -10 enzyme_cache.php 1.3
--- www/areas/cvs-digest/enzyme/enzyme_cache.php #1.2:1.3
@@ -26,27 +26,88 @@
var $default_directory;
- var $ctrl_file;
- var $expire_time;
var $cache_url;
-function enzyme_cache ($url,$expire) { // url is filename, expire is 'never', or \
hours
- $this->default_directory = "cache/";
-
+function enzyme_cache ($url,$expire,$c) { // url is filename, expire is 'never' \
or 'expire', cache true or false + $this->default_directory = "cache/$expire";
+ $this->cache_url = $url;
+ if (($c == false) and ($this->incache()))
+ $this->publish();
+ else
+ $this->setupsave();
}
-function publish() { // either reads and echo's cache file or output buffer.
+function setupsave() {
+ ob_start();
+}
+function cacheandout() {
+ $id = md5($this->cache_url);
+ $fh = fopen("$this->default_directory/$id","w");
+ fwrite($fh,ob_get_contents());
+ fclose($fh);
+ ob_end_flush();
}
+
-function valid() { // checks if url exists and is valid, if so returns true. if \
not, turns on output buffering.
- return false;
+function publish() { // either reads and echo's cache file or output buffer.
+ $id = md5($this->cache_url);
+ echo readfile("$this->default_directory/$id");
+ exit;
+}
+function incache() { // checks if url exists and is valid, if so returns true. if \
not, turns on output buffering. + $id = md5($this->cache_url);
+ return file_exists("$this->default_directory/$id");
}
}
-
-
+function cache($request) {
+ // different caching expiries.
+ // digest: never
+ // list: at each update
+ // diff: never
+ // stat: never
+ // under directory cache/keep cache/expire. cache/expire is emptied by others
+ $refresh = false;
+ if (array_key_exists("refresh", $request))
+ $refresh = true;
+
+ //build urls in same order
+
+ if (array_key_exists("issue", $request)) {
+ $i = $request["issue"];
+ $c = new enzyme_cache("issue=$i","never",$refresh);
+ return $c;
+ }
+
+ if (array_key_exists("stat", $request)) {
+ $p = $request["period"];
+ $c = new enzyme_cache("stat&period=$p","never",$refresh);
+ return $c;
+ }
+
+ if (array_key_exists("list", $request)) {
+ $v = $request["version"];
+ $f = $request["file"];
+ $u = $request["user"];
+ $b = $request["branch"];
+ $s = $request["starttime"];
+ $e = $request["endtime"];
+ $c = new enzyme_cache("file=$f&version=$v&user=$u&branch=$b&starttime=$s&endtime=$e","expire",$refresh);
+ return $c;
+ }
+
+ if (array_key_exists("diff", $request)) {
+ $v = $request["version"];
+ $f = $request["file"];
+ $c = new enzyme_cache("file=$f&version=$v","never",$refresh);
+ return $c;
+ }
+
+ $c = new enzyme_cache("index","expire",true);
+ return $c;
+}
?>
\ No newline at end of file
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic