Heim  >  Artikel  >  Backend-Entwicklung  >  Code zur ThinkPHP-Datei-Caching-Klasse

Code zur ThinkPHP-Datei-Caching-Klasse

不言
不言Original
2018-06-11 10:33:232655Durchsuche

Dieser Artikel teilt Ihnen den Datei-Cache-Code von ThinkPHP mit. Er ist sehr praktisch und effizient. Es wird jedem empfohlen, ihn bei Bedarf nachzuschlagen.

Der Code der Datei-Caching-Klasse stammt von ThinkPHP. Hier wird es keinen Unsinn mehr geben. Bitte lesen Sie die Kommentare selbst.

<?php
  /**
   * @desc 文件缓存
   */
  class Cache{
    const C_FILE = &#39;/Runtime/&#39;;
    private $dir = &#39;&#39;;
    const EXT = &#39;.tpl&#39;;
    private $filename = &#39;&#39;;
    public function __construct($dir = &#39;&#39;){
      $this->dir = $dir;
      
    }
    /**
     *  @desc 设置文件缓存
     *  @param string $key 文件名 
     *  @param unkonw $data 缓存数据
     *  @param int  $expire 过期时间
     */
    public function set($key,$data,$expire = 0){
      $this->filename =   dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;
      if(file_exists($this->filename)){
        $res = $this->get($key);
        if(md5($res) == md5(json_encode($data) ) ){
          return true;
        }
      }
      if(!is_dir(dirname($this->filename))){
        mkdir(dirname($this->filename),0777);
      }
      
      $source = fopen($this->filename,&#39;w+&#39;);
      fwrite($source,json_encode($data));
      fclose($source);
    }
    
    /**
     *  @desc 获取文件
     * @param string $key 文件名
     */
    public function get($key){
      //$filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;
      if(!file_exists($this->filename)){
        return &#39;缓存文件已经不存在&#39;;
      }else{
        $res = file_get_contents($this->filename);
      }
      return $res;
    }
    /**
     *  @desc 删除文件
     * @param string $key 文件名
     */
    public function del($key){
      unlink($this->filename);
    }
    
  }
  
  $data = array(&#39;name&#39;=>&#39;song&#39;,&#39;age&#39;=>20,&#39;sex&#39;=>&#39;man&#39;,&#39;favority&#39;=>array(&#39;apple&#39;,&#39;banana&#39;));
  $cache = new Cache();
  $cache->set(&#39;cache&#39;,$data);
  //$cache->get(&#39;cache&#39;);
  //$cache->del(&#39;cache&#39;);

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

thinkphp verwendet die Bearbeitung allgemeiner Modelldaten zum Hinzufügen und Löschen

Über das ThinkPhp-Framework-Formular Validierung Analyse von Ajax-Verifizierungsproblemen

Das obige ist der detaillierte Inhalt vonCode zur ThinkPHP-Datei-Caching-Klasse. 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