Home >Backend Development >PHP Tutorial >Detailed explanation of php Cache class instances

Detailed explanation of php Cache class instances

小云云
小云云Original
2018-03-10 11:03:3012250browse

This article mainly shares with you the detailed explanation of php Cache class examples, hoping to help you better understand how to use cache.

Recommended manual: php complete self-study manual

##1. Instantiation

$cache = new Cache();

2. Set the cache time and cache directory

$cache = new Cache(60, '/any_other_path/');

The first parameter is the cache seconds, and the second parameter is the cache path, configure it as needed.

By default, the cache time is 3600 seconds, the cache directory is cache/

3, read cache

$value = $cache->get('data_key');

4, write cache

$value = $cache->put('data_key', 'data_value');

Complete example:

$cache = new Cache();

//从缓存从读取键值 $key 的数据
$values = $cache->get($key);

//如果没有缓存数据
if ($values == false) {
	//insert code here...
	//写入键值 $key 的数据
	$cache->put($key, $values);
} else {
	//insert code here...
}
<?php
class Cache {
	private $cache_path;//path for the cache
	private $cache_expire;//seconds that the cache expires

	//cache constructor, optional expiring time and cache path
	public function Cache($exp_time=3600,$path="cache/"){
		$this->cache_expire=$exp_time;
		$this->cache_path=$path;
	}

	//returns the filename for the cache
	private function fileName($key){
		return $this->cache_path.md5($key);
	}

	//creates new cache files with the given data, $key== name of the cache, data the info/values to store
	public function put($key, $data){
		$values = serialize($data);
		$filename = $this->fileName($key);
		$file = fopen($filename, &#39;w&#39;);
	    if ($file){//able to create the file
	        fwrite($file, $values);
	        fclose($file);
	    }
	    else return false;
	}

	//returns cache for the given key
	public function get($key){
		$filename = $this->fileName($key);
		if (!file_exists($filename) || !is_readable($filename)){//can&#39;t read the cache
			return false;
		}
		if ( time() < (filemtime($filename) + $this->cache_expire) ) {//cache for the key not expired
			$file = fopen($filename, "r");// read data file
	        if ($file){//able to open the file
	            $data = fread($file, filesize($filename));
	            fclose($file);
	            return unserialize($data);//return the values
	        }
	        else return false;
		}
		else return false;//was expired you need to create new
 	}
}
?>

Recommended related articles: 1.
The principle and use of TP5 Cache2.
php data cache cache class(download)
Related video recommendations: 1.
Dugu Jiujian (4)_PHP video tutorial

The above is the detailed content of Detailed explanation of php Cache class instances. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn