56 lines
1.2 KiB
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;
|
|
}
|
|
}
|