使用composer给自己的php程序添加缓存支持
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。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这个文件
引导过程中有一个author是必须填写的格式为 aaaaa <aaaaaa@xx.com>
继续下一步,安装引用的php包依赖,输入 doctrine/cache
默认直接回车安装最新版本,然后出现using version ..........后,会继续出现Search for a package,这个时候按下 Esc 键再按回车就会跳过搜索进行下一步
继续下一步直接到完成后目录里出现一个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() { } }