Cache组件

3.3 版本
维护中的版本

Cache组件提供了严格的PSR-6实现,以添加缓存到你的程序中。它被设计为低开销并且自带了适用于“绝大多数常见缓存后台”的适配器(adapter)。

3.1 缓存组件从Symfony 3.1开始被引入。

安装 

你可以通过下述两种方式安装:

然后,包容vendor/autoload.php文件,以开启Composer提供的自动加载机制。否则,你的程序将无法找到这个Symfony组件的类。

键的概念 

使用本组件之前,了解一些关键的概念十分重要:

Item(元素)
存有键值对的一个信息单元,键是信息的唯一识别,值是信息的内容;
Pool(池)
缓存元素的逻辑宝库。所有缓存操作(存储元素,寻找元素,等等)都通过pool来操作。如果需要,程序可以定义很多pool;
Adapter(适配器)
它实现了真正的缓存架构,用于把信息存到文件系统、数据库,等等。组件提供了若干个“即拿即用”的adapter用于常见的缓存后端 (Redis, APCu, 等等)。

基本用法 

本组件是 PSR-6 的严格实现,意味着API与标准中的定义完全相同。开始缓存信息之前,使用内建的适配器创建一个缓存池。例如,要创建基于文件的缓存,实例化 FilesystemAdapter 类:

1
2
3
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
 
$cache = new FilesystemAdapter();

现在你可以使用这个缓存池来创建、取出、更新以及删除元素了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// create a new item by trying to get it from the cache
// 创建一个新元素并尝试从缓存中得到它
$numProducts = $cache->getItem('stats.num_products');
 
// assign a value to the item and save it
// 对元素赋值并存储它
$numProducts->set(4711);
$cache->save($numProducts);
 
// retrieve the cache item
// 取出缓存元素
$numProducts = $cache->getItem('stats.num_products');
if (!$numProducts->isHit()) {
    // ... item does not exists in the cache
    // ... 元素在缓存中不存在
}
// retrieve the value stored by the item
// 取出元素存储的值
$total = $numProducts->get();
 
// remove the cache item
// 删除缓存元素
$cache->deleteItem('stats.num_products');

高级用法 

本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。

登录symfonychina 发表评论或留下问题(我们会尽量回复)