phpcacher/inc/Class.PHPCACHER.inc.php

56 lines
1.2 KiB
PHP

<?php
class PHPCACHER {
public function put($item,$data) {
file_put_contents($this->fileName($item),serialize($data));
return TRUE;
}
public function get($item) {
if ( $this->isCached($item) && $this->isValid($item) ) {
return unserialize(file_get_contents($this->fileName($item)));
return TRUE;
}
return FALSE;
}
public function del($item) {
if ( file_exists($this->fileName($item)) ) {
unlink($this->fileName($item));
}
return TRUE;
}
private function isCached($item) {
if ( file_exists($this->fileName($item)) ) {
return TRUE;
}
return FALSE;
}
private function isValid($item) {
if ( filemtime($this->fileName($item)) > time()-$this->cachettl ) {
return TRUE;
}
return FALSE;
}
private function fileName($item) {
return $this->cachepath."/".md5($item).".data";
}
public function setTTL($ttl) {
$this->cachettl=$ttl;
return TRUE;
}
public function setPath($path) {
$this->cachepath=$path;
if ( !file_exists($this->cachepath) ) {
mkdir($this->cachepath,0755,TRUE);
}
return TRUE;
}
}
class Cache extends PHPCACHER {
function __construct() {
$this->setTTL(3600);
$this->setPath("./cache");
return TRUE;
}
}