Maison > Applet WeChat > Développement WeChat > le corps du texte

Le développement PHP WeChat utilise Cache pour résoudre la mise en cache des données

高洛峰
Libérer: 2017-03-28 14:03:50
original
2450 Les gens l'ont consulté

Cet article présente principalement comment résoudre le problème de la mise en cache des données lors du développement de WeChat en PHP. Les partenaires peuvent se référer à Lors de l'utilisation de PHP pour le développement de WeChat, j'ai rencontré le problème de stockage à long terme d'access_token. Dans le passé, j'utilisais le Cache dans le framework

pour

set directement et c'est tout. Maintenant qu'il n'y a plus de framework disponible, je dois écrire moi-même un cache pour une utilisation temporaire. Cette classe Cache est utilisée pour mettre en cache certaines données sensibles au temps, telles que le access_token de l' interface de base de WeChat

, le access_token de la vérification de l'authentification Web, etc.

Le code ci-dessous Utiliser des fichiers locaux pour mettre en cache les données

La classe Cache ci-dessus a trois opérations : définir, obtenir et supprimer. De plus, vous pouvez également personnaliser le chemin de stockage des fichiers de cache, il suffit de définir l'attribut dir

//测试
 $cache = new Cache();
 $cache->dir = "../cc/";
 //$cache->setCache("zhang", "zhangsan", 100);
 echo $cache->getCache("zhang");
 //$cache->removeCache("zhang");
 
 $cache->setCache("liu", "liuqi", 100);
 echo $cache->getCache("liu");

 class Cache{
 public $cacheFile = "cache.json"; //文件
 public $dir = "./cach2/"; //目录

 //缓存
 public function setCache($name, $val, $expires_time){
 $file = $this->hasFile();
 //字符串转数组
 $str = file_get_contents($file);
 $arr = json_decode($str, true);
 
 //值为空,则移除该缓存
 if(empty($val)){
 unset($arr[$name]);
 }else{
 $arr[$name] = array("value"=>$val, "expires_time"=>$expires_time, "add_time"=>time());
 } 
 //数组转字符串
 $str = json_encode($arr);
 file_put_contents($file, $str);
 }
 public function getCache($name){
 $file = $this->hasFile();
 
 //字符串转数组
 $allArr = json_decode($str, true);
 $arr = $allArr[$name];

 if(!$arr || time() > ($arr["expires_time"] + $arr["add_time"])){
 $this->removeCache($name); //过期移除
 return false;
 }
 return $arr["value"];
 }
 public function removeCache($name){
 $this->setCache($name, '', 0);
 }
 
 private function hasFile(){
 //如果不存在缓存文件,则创建一个
 if(!file_exists($this->dir)){
 mkdir($this->dir);
 }
 if(!file_exists($this->dir . $this->cacheFile)){
 touch($this->dir . $this->cacheFile);
 }
 return $this->dir . $this->cacheFile;
 }
}
Copier après la connexion
du Cache.

Ce qui précède est la méthode de mise en cache des données pendant le développement de PHP WeChat. J'espère qu'elle sera utile à l'apprentissage de chacun.

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