ceikermann / advcache
此包已被弃用且不再维护。没有建议的替代包。
针对doctrine/cache的先进缓存库
1.0.1
2015-03-26 10:21 UTC
Requires
- php: >=5.3.3
- doctrine/cache: 1.3.*||1.4.*
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2020-04-03 16:14:51 UTC
README
AdvCache是Doctrine\Cache组件的扩展。AdvCache也实现了Doctrine的Cache接口,但提供了像fetchOrCall或缓存标签等一些额外的灵活方法,以更好地处理缓存。
缓存标签的使用场景
例如,你想存储用户#1的所有好友列表。用户#1有以下用户作为好友:用户#3和用户#4。正确的方法是选择一个缓存键如"user_friends:1"。在用户#4删除其账户的情况下,你必须使所有包含用户#4的用户好友列表的缓存失效。现在你可以使用缓存标签系统。只需将缓存键"user_friends:1"标记为"user:4",因为"user:4"在列表中,在账户删除的情况下,你可以使所有分配给标签"user:4"的缓存失效。
安装
通过composer安装非常简单
composer require ceikermann/advcache
或者将其添加到你的composer.json文件中。
使用
在fetch方法中更改默认返回值
$data = $advcache->fetch('somecacheid', array()); $data[] = 'some new data';
如果缓存中不存在somecacheid
条目,它将返回一个空数组而不是false。
获取或执行回调
$data = $advcache->fetchOrCall('somecacheid', function() { return $someNewData; });
在这种情况下,如果缓存中不存在somecacheid
条目,它将执行回调并保存回调的结果并返回它。
为缓存分配标签
$advcache->assignCacheIdToTag('somecacheid1', 'tag1'); $advcache->assignCacheIdToTag('somecacheid2', 'tag1');
在这种情况下,标签1分配给了两个缓存ID(somecacheid1
和somecacheid2
)。
按标签删除
$advcache->deleteByTag('tag1');
在这种情况下,它将删除缓存somecacheid1
和somecacheid2
,因为它们都被分配给了tag1
。
在save方法中为缓存分配标签
$advcache->save('somecacheid1', $someCachedData, 0, array('tag1', 'tag2'));
在save方法中,可以直接使用标签分配缓存。