ホームページ  >  記事  >  バックエンド開発  >  ThinkPHP ファイル キャッシュ クラスに関するコード

ThinkPHP ファイル キャッシュ クラスに関するコード

不言
不言オリジナル
2018-06-11 10:33:232681ブラウズ

この記事では、ThinkPHP から取得したファイル キャッシュ クラスのコードを共有します。これは、必要に応じて参照することをお勧めします。

ファイル キャッシュ クラスのコードは ThinkPHP から引用しています。これ以上のナンセンスはありません。コメントを自分で読んでください。

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

以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

thinkphp はモデルの一般的なデータ編集を使用して追加と削除を行います

ThinkPhp フレームワーク フォームについて検証 Ajax 検証問題の分析

以上がThinkPHP ファイル キャッシュ クラスに関するコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。