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

Detailed explanation of php Cache class instances

小云云
Release: 2023-03-21 07:26:01
Original
12254 people have browsed it

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();
Copy after login

2. Set the cache time and cache directory

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

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');
Copy after login

4, write cache

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

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...
}
Copy after login
<?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
 	}
}
?>
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template