Maison > développement back-end > Problème PHP > Comment implémenter le code de mise en cache en php

Comment implémenter le code de mise en cache en php

王林
Libérer: 2023-03-13 13:04:01
original
1917 Les gens l'ont consulté

Méthode PHP pour implémenter le code de classe de cache : [$cache = new Cache(); $values ​​​​= $cache->get($key); if ($values ​​​​== false) {$cache->); ;put($ clé, $values)...].

Comment implémenter le code de mise en cache en php

L'environnement d'exploitation de cet article : système windows10, php 7, ordinateur thinkpad t480.

Instructions d'utilisation :

1. Instanciez

$cache = new Cache();
Copier après la connexion

2. Définissez l'heure du cache et le répertoire du cache

$cache = new Cache(60, '/any_other_path/');
Copier après la connexion

Le premier paramètre est les secondes du cache, et le deuxième paramètre est le chemin du cache, configurez-le selon vos besoins.
Par défaut, le temps de cache est de 3600 secondes, le répertoire de cache est cache/

3, lisez cache

$value = $cache->get('data_key');
Copier après la connexion

4, écrivez cache

$value = $cache->put('data_key', 'data_value');
Copier après la connexion

Exemple complet :

$cache = new Cache();
   
//从缓存从读取键值 $key 的数据
$values = $cache->get($key);
   
//如果没有缓存数据
if ($values == false) {
//insert code here...
//写入键值 $key 的数据
$cache->put($key, $values);
} else {
//insert code here...
}
Copier après la connexion

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
}
}
?>
Copier après la connexion

Apprentissage recommandé : formation php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal