Heim  >  Artikel  >  php教程  >  ThinkPHP3.1.3核心类 Cache.class.php

ThinkPHP3.1.3核心类 Cache.class.php

WBOY
WBOYOriginal
2016-06-06 20:02:101535Durchsuche

/ThinkPHP/lib/core/Cache.class.php 一、示例代码 需要注意的就三个函数 1、连接缓存 public function connect($type=,$options=array()) { if(empty($type)) $type = C(DATA_CACHE_TYPE); $type = strtolower(trim($type)); $class = Cache.ucwords($type)

/ThinkPHP/lib/core/Cache.class.php

一、示例代码

需要注意的就三个函数

1、连接缓存

 public function connect($type='',$options=array()) {
        if(empty($type))  $type = C('DATA_CACHE_TYPE');
        $type  = strtolower(trim($type));
        $class = 'Cache'.ucwords($type); /*根据不同的类型 调用不同的缓存引擎  默认TP只提供了 文件缓存方式 在 Lib/Driver/Cache/CacheFile.class.php*/
        if(class_exists($class))
            $cache = new $class($options);
        else
            throw_exception(L('_CACHE_TYPE_INVALID_').':'.$type);
        return $cache;
    }

2、取得缓存类实例

static function getInstance() {
       $param = func_get_args();
        return get_instance_of(__CLASS__,'connect',$param);
    }
这里调用了 function.php 中的 get_instance_of 函数,实际上 是吧 单例模式独立出去了


3、队列缓存

作用就是 设置缓存的长度 

如果不启用缓存队列,在超时时间内,只要set缓存 就是不断添加缓存

额设置的缓存长度 如10 ,那么根据队列“先进先出”的原则,当缓存数量大于10的时候,会删除队首的缓存。


二、值得说的编程小细节:

1、

public function __get($name) {
        return $this->get($name);
    }

    public function __set($name,$value) {
        return $this->set($name,$value);
    }
这里体现了面向对象 多态思想 

子类继承Cache类, Cache类中的$this->set() 是调用的子类中的方法

2、function.php 中的 get_instance_of 函数

把单例模式独立出来 是比较不错的方式



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
Vorheriger Artikel:用VIM做PHP开发环境Nächster Artikel:php referer 防盗链