1 使用方法

使用composer下载 yeszao/cache 组件:

composer install yeszao/cache

在MVC框架Model层或者Service层的基类添加__call()方法,例如:

namespace appmodels; use yeszaocache; class Base { public function __call($name, $arguments) { $redis = new Redis(); $redis->connect('redis'); // ***主要是这一行*** return (new Cache($redis))->get($this, $name, $arguments); } }

其中,yeszaocacheCache对象创建时必须传入 Redis 连接句柄, 然后再通过get方法获取缓存。

让子类继承Base类,例如:

namespace appmodels; use appmodelsBase; class Book extends Base { public function getById($id) { return ['id' => 100, 'title' => 'PHP documents'] } }

然后就可以在Controllers类或其他Model类中使用:

(new Book)->getById(100); // 原始的、不用缓存的调用方式,一般是读取数据库的数据。 (new Book)->getByIdCache(100); // 使用缓存的调用方式,缓存键名为:app_models_book:getbyid: + md5(参数列表) (new Book)->getByIdClear(100); // 删除这个缓存 (new Book)->getByIdFlush(); // 删除 getById() 方法对应的所有缓存,即删除 app_models_book:getbyid:*。这个方法不需要参数。

2 构造函数参数

yeszaocacheCache构造函数参数:

$redis: 必须。Redis连接对象。 $config: 可选。缓存的一些配置。 $config['prefix']: 缓存键名前缀,默认空字符串。 $config['expire']:缓存过期时间,默认3600秒。 $config['emptyExpire']:原函数返回空值是的缓存过期时间,默认10秒。

3. 方法

除了构造函数,主要就是2个方法。

3.1 get()方法

获取缓存,如果未缓存,则调用原对象的原方法,拿到数据后保存到Redis中,并返回数据。 有3个参数,基本就是固定的:

$object: 当前调用的类对象,传入$this$name: 欲调用的方法名称,由__call自动获取后传入。 $arguments: 欲调用的方法的参数,由__call自动获取后传入。

3.2 expire()方法

设置缓存过期时间。 默认的缓存过期时间是3600秒,也可以用expire()方法动态设置。 只有1个参数:

$time: 缓存过期时间,单位为秒。

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。