Heim  >  Artikel  >  WeChat-Applet  >  Die PHP-WeChat-Entwicklung verwendet Cache, um das Daten-Caching zu lösen

Die PHP-WeChat-Entwicklung verwendet Cache, um das Daten-Caching zu lösen

高洛峰
高洛峰Original
2017-03-28 14:03:502455Durchsuche

In diesem Artikel wird hauptsächlich beschrieben, wie das Problem der Zwischenspeicherung von Daten bei der Entwicklung von WeChat in PHP-Partnern auf gelöst werden kann.

Bei der Verwendung von PHP für die WeChat-Entwicklung bin ich auf Folgendes gestoßen Problem der Langzeitspeicherung von access_token. In der Vergangenheit habe ich den Cache im

Framework direkt festgelegt verwendet. Da kein Framework verfügbar ist, muss ich selbst einen Cache für die vorübergehende Verwendung schreiben.

Diese Cache-Klasse wird verwendet, um einige zeitkritische Daten zwischenzuspeichern, wie z. B. das Access_token der WeChat-Basis-

-Schnittstelle , das Access_token der Web-Authentifizierungsüberprüfung usw.

Der folgende Code verwendet lokale Dateien zum Zwischenspeichern von Daten

//测试
 $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;
 }
}
Die obige Cache-Klasse verfügt über drei Operationen: Festlegen, Abrufen und Entfernen. Darüber hinaus können Sie auch den Speicherpfad von Cache-Dateien anpassen, indem Sie einfach das dir

-Attribut von Cache festlegen.

Die oben beschriebene Methode zur Datenzwischenspeicherung während der PHP-WeChat-Entwicklung wird für das Lernen aller hilfreich sein

Das obige ist der detaillierte Inhalt vonDie PHP-WeChat-Entwicklung verwendet Cache, um das Daten-Caching zu lösen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn