Home > Backend Development > PHP Problem > How to implement caching code in php

How to implement caching code in php

王林
Release: 2023-03-13 13:04:01
Original
1923 people have browsed it

php method to implement cache class code: [$cache = new Cache(); $values ​​= $cache->get($key); if ($values ​​== false) {$cache-> ;put($key, $values)...].

How to implement caching code in php

The operating environment of this article: windows10 system, php 7, thinkpad t480 computer.

Instructions for use:

1. Instantiation

$cache = new Cache();
Copy after login

2. Set cache time and cache directory

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

The first parameter is cache Seconds, 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

Cache.class.php

<?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 learning:php training

The above is the detailed content of How to implement caching code in php. 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