Home > Article > Backend Development > Share a simple cache class in PHP
This article shares with you an extremely simple PHP caching code. The application of caching is particularly important for the development of PHP projects. Friends in need can refer to it. I hope to be helpful.
There is a lot of information about the PHP cache class on the Internet, but this class should be the one I have seen that has functions that meet the needs but is extremely simple. Without further ado, let’s just look at the code!
Instructions for use:
1. Instantiation
$cache = new Cache();
2. Set cache time and cache directory
$cache = new Cache(60, '/any_other_path/');
The first parameter is the cache seconds, the second parameter is the cache path, configure it as needed .
By default, the cache time is 3600 seconds, and 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... }
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, 'w'); 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'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 } } ?>
Related recommendations:
Detailed explanation of how PHP modifies the table structure in batches
Detailed explanation of PHP using redis queue to automatically confirm receipt of e-commerce orders
Detailed explanation of PHP's addition, deletion and modification of xml files
The above is the detailed content of Share a simple cache class in PHP. For more information, please follow other related articles on the PHP Chinese website!