使用composer给自己的php程序添加缓存支持

来源:赵克立博客 分类: PHP 标签:PHPThinkphpComposer发布时间:2016-12-12 13:26:09最后更新:2017-01-10 16:39:09浏览:3736
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2017-01-10 16:39:09
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

安装缓存支持依赖

如果自己项目目录中已经初始化过啦composer的话里面会有一个composer.json可以直接安装 

composer require doctrine/cache

 

没有composer.json这个文件的打开自己的项目目录,按下shift+右键打开cmd输入

composer init

初始化一个composer.json文件

初始的过程中会让输入你想引用的哪些php包,如下再回车就是引导你去生成composer.json这个文件

blob.png

引导过程中有一个author是必须填写的格式为  aaaaa <aaaaaa@xx.com>

blob.png

继续下一步,安装引用的php包依赖,输入 doctrine/cache 

默认直接回车安装最新版本,然后出现using version ..........后,会继续出现Search for a package,这个时候按下 Esc 键再按回车就会跳过搜索进行下一步

blob.png

继续下一步直接到完成后目录里出现一个compose.json文件

然后再打开cmd运行

composer install

之后对应的php包依赖就会被下载下来

缓存依赖包的使用方法

安装好composer后,就已经给你添加啦一个自动加载php类库的加载器,只需引入下面一个文件就可以

//包含自动加载类
$loader = require  './vendor/autoload.php';
//实例化缓存
$cache   = new \Doctrine\Common\Cache\FilesystemCache('./data/cache/');
//写缓存
$cache->save('name', '缓存数据', '缓存时间');
//读缓存
$cache->fetch('name');
//删除缓存
$cache->delete('name');
//检查缓存是否存在
$cache->contains('name');
//删除全部缓存
$cache->deleteAll('name');

一般情况下我们会写一个在项目中使用的缓存类来方便扩展第三方不同的缓存支持,方便以后修改如下

class Cache {
	static public $_instance = null;
	static public function getInstance() {
		if (!self::$_instance) {
			$cache_path = './data/';
			if (!file_exists($cache_path)) {
				@mkdir(dirname($cache_path), 0777, true);
				// file_put_contents(this->cache_path, '');
			}
			self::$_instance = new \Doctrine\Common\Cache\FilesystemCache($cache_path);
		}
		return self::$_instance;
	}
	/**
	 * 写缓存
	 * @param  string  $key      缓存key
	 * @param  [type]  $data     缓存的数据
	 * @param  integer $lifeTime 保存的时间false为永久
	 * @return [type]            boolean
	 */
	static public function write($key = '', $data = null, $lifeTime = false) {
		return self::getInstance()->save($key, $data, $lifeTime);
	}
	/**
	 * 写临时缓存
	 * @param  string $key 缓存key
	 * @return [type]      [description]
	 */
	static public function writeTemp($key = '', $data = null, $lifeTime = false) {
		return self::getInstance()->save($key, $data, $lifeTime);
	}
	/**
	 * 读缓存
	 * @param  string $key 缓存key
	 * @return [type]      [description]
	 */
	static public function read($key = '') {
		return self::getInstance()->fetch($key);
	}
	/**
	 * 删除缓存
	 * @param  string $key 缓存key
	 * @return [type]      [description]
	 */
	static public function delete($key = '') {
		return self::getInstance()->delete($key);
	}
	/**
	 * 检查缓存是否存在
	 * @param  string $key [description]
	 * @return [type]      [description]
	 */
	static public function exists($key = '') {
		return self::getInstance()->contains($key);
	}
	/**
	 * 删除全部缓存
	 * @param  string $key 缓存key
	 * @return [type]      [description]
	 */
	static public function deleteAll() {
		return self::getInstance()->deleteAll();
	}
	/**
	 * 析构方法
	 * @access public
	 */
	public function __destruct() {
	}
}



微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python