>php教程 >php手册 >ThinkPHP3.1.3核心类 Cache.class.php

ThinkPHP3.1.3核心类 Cache.class.php

WBOY
WBOY원래의
2016-06-06 20:02:101575검색

/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 函数

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



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:用VIM做PHP开发环境다음 기사:php referer 防盗链