I try to share my experience on write php code, in this time i will share simple php librarary for caching content, this very simple. If you interesting you can get it from my dropbox.
This the code:
class Cache { private $cachedir = ''; private $expire = 60; public function __construct($cachedir = ''){ if ($cachedir !== ''){ if (!is_dir($cachedir) or !is_writable($cachedir)){ throw new Exception('Cache directory must be a valid writeable directory.'); } $this->cachedir = $cachedir; } } public function set($id, $data){ $file = $this->cachedir . $id; if ( file_exists( $file ) ){ unlink($file); } if (!file_put_contents($file, serialize($data))){ throw new Exception('Error writing data to cache file.'); } } public function get($id){ $file = glob($this->cachedir . $id); $file = array_shift($file); if (!$data = file_get_contents($file)) { throw new Exception('Error reading data from cache file.'); } return unserialize($data); } public function valid($id,$set=''){ if($set !== ''){ return (bool)$set; } $file = glob($this->cachedir . $id); $file = array_shift($file); return (bool)(time() - filemtime($file) <= $this->expire); } public function delete($id){ $path = $this->cachedir . $id ; if( file_exists( $path ) ) { unlink( $path ); } } }Example usage :
<!DOCTYPE HTML> <head> <meta http-equiv="content-type" content="text/html" /> <meta name="author" content="Jaksu" /> <title>Simple File Caching</title> </head> <body> <?php include 'cache.php'; $cache = new Cache('cache/'); $cache_data = 'simple file caching example'; $cache_id = '123'; if( $cache->valid( $cache_id ) ) { $data = $cache->get( $cache_id ); } else { $data = $cache_data; $cache->set( $cache_id , $cache_data ); } echo $data; ?> </body> </html>
0 komentar:
Posting Komentar