Return to Snippet

Revision: 59991
at October 14, 2012 01:16 by peckham


Initial Code
<?php
/**
 * Class Cache
 * 
 * @author Koen Ekelschot
 * @license WTFPL
 */
class Cache {
	
	private $cachedFile;
	
	public function __construct($identifier) {
		$this->cachedFile = ROOT.DS.'tmp'.DS.'cache'.DS.md5($identifier);
	}
	
	public function cacheExists($maxAge) {
		if (file_exists($this->cachedFile) && !is_dir($this->cachedFile)) {
			if (filemtime($this->cachedFile) + $maxAge > time()) {
				return true;
			} else {
				$this->invalidateCache();
			}
		}
		return false;
	}
	
	public function getCachedCopy() {
		$contents = file_get_contents($this->cachedFile);
		return unserialize(base64_decode($contents));
	}
	
	public function getCachedFilename() {
		return str_replace(ROOT, '', $this->cachedFile);
	}
	
	public function cacheResult($result) {
		if (file_exists($this->cachedFile) && !is_dir($this->cachedFile)) {
			$this->invalidateCache();
		}
		$base64 = base64_encode(serialize($result));
		file_put_contents($this->cachedFile, $base64);
	}
	
	private function invalidateCache() {
		unlink($this->cachedFile);
	}
	
}
?>

Initial URL

                                

Initial Description
A simple class to cache files (or other results) with PHP.

Initial Title
Simple PHP cache class

Initial Tags
class, php, simple, cache

Initial Language
PHP