Maison  >  Article  >  développement back-end  >  Code sur la classe de mise en cache de fichiers ThinkPHP

Code sur la classe de mise en cache de fichiers ThinkPHP

不言
不言original
2018-06-11 10:33:232675parcourir

Cet article partage avec vous le code du cache de fichiers extrait de ThinkPHP. Il est très pratique et efficace. Il est recommandé ici à tout le monde de s'y référer si vous en avez besoin.

Le code de la classe de mise en cache des fichiers est extrait de ThinkPHP. Il n'y aura plus de bêtises ici. Amis, veuillez lire les commentaires vous-même.

<?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;);

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

thinkphp utilise l'édition de données générales du modèle pour ajouter et supprimer

À propos du formulaire du framework ThinkPhp validation Analyse des problèmes de vérification ajax

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!

Déclaration:
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