缓存组件

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.3,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

缓存组件

缓存组件提供了一个扩展PSR-6以及实现PSR-16“简单缓存”实现缓存添加到您的应用程序。它的目的是有一个低开销和附带准备为最常见的缓存后端使用适配器。

3.3

PSR-16“简单缓存”的实现是在Symfony 3.3中引入的。ob娱乐下载

安装

您可以安装组件在两个不同的方面:

缓存(PSR-6)和简单的缓存(PSR-16)

该组件包括两个不同方法缓存:

PSR-6缓存:
有很多特色的缓存系统,包括缓存“池”,更多的高级高速缓存“物品”,缓存标签失效
PSR-16简单缓存:
一个简单的方法来存储,从缓存获取和删除条目。

这两种方法都支持相同缓存适配器和将给你非常相似的性能。

提示

组件还包含适配器PSR-6和PSR-16缓存之间的转换。看到适配器PSR-6和PSR-16缓存之间的互操作性

简单的缓存(PSR-16)

这部分的组件的实现PSR-16,这意味着其基本API中定义的标准是一样的。首先,创建一个缓存对象的内置缓存类。例如,基于文件系统创建一个缓存,实例化FilesystemCache:

1 2 3
使用ob娱乐下载\组件\缓存\简单的\FilesystemCache;美元缓存=FilesystemCache ();

现在你可以创建、检索、更新和删除项目使用这个对象:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/ /保存在缓存中一个新项美元缓存- >集(“stats.num_products”,4711年);/ /或与一个定制的ttl设置它/ /缓存- >设置(“统计数据。num_products”、4711、3600);/ /检索缓存项如果(!美元缓存- >有(“stats.num_products”)){/ /……项目不存在于缓存中}/ /检索存储的值项美元numProducts=美元缓存- >get (“stats.num_products”);/ /或指定一个默认值,如果不存在的关键/ / $ numProducts = $缓存- > get(的统计数据。num_products ', 100);/ /删除缓存键美元缓存- >删除(“stats.num_products”);/ /清楚* *缓存键美元缓存- >明确的();

你也可以一次处理多个项目:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
美元缓存- >setMultiple (数组(“stats.num_products”= >4711年,“stats.num_users”= >1356年));美元统计数据=美元缓存- >getMultiple (数组(“stats.num_products”,“stats.num_users”));美元缓存- >deleteMultiple (数组(“stats.num_products”,“stats.num_users”));

可用简单的缓存(PSR-16)类

以下可用缓存适配器:

提示

找到更多关于每一个类,你可以阅读PSR-6缓存池页面。这些“简单的”(PSR-16)缓存类不相同PSR-6适配器上的页面,但每股构造函数参数和用例。

更先进的缓存(PSR-6)

使用更加先进,PSR-6缓存能力,你需要学习它的关键概念:

一个单元的信息存储为一个键/值对,关键是惟一标识符的信息和价值是其内容;
一个逻辑库缓存项。所有缓存操作(储蓄项目,寻找项目,等等)通过执行池。应用程序可以定义需要尽可能多的池。
适配器
它实现了实际缓存机制来存储文件系统中的信息,在数据库等。该组件提供了几个可以使用适配器通用缓存后端(APCu复述,教义,PDO,等等)。

基本用法(PSR-6)

这部分的组件的实现PSR-6,这意味着其基本API中定义的标准是一样的。开始缓存信息之前,创建缓存池使用任何内置的适配器。例如,基于文件系统创建一个缓存,实例化FilesystemAdapter:

1 2 3
使用ob娱乐下载\组件\缓存\适配器\FilesystemAdapter;美元缓存=FilesystemAdapter ();

现在,您可以创建、检索、更新和删除项目使用这个缓存池:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/ /创建一个新的项目,试图把它从缓存中美元numProducts=美元缓存- >getItem (“stats.num_products”);/ /赋值的项目并保存它美元numProducts- >集(4711年);美元缓存- >保存(美元numProducts);/ /检索缓存项美元numProducts=美元缓存- >getItem (“stats.num_products”);如果(!美元numProducts- >isHit ()) {/ /……项目不存在于缓存中}/ /检索存储的值项美元=美元numProducts- >get ();/ /删除缓存项美元缓存- >deleteItem (“stats.num_products”);

所有支持的适配器的列表,看看缓存池和支持的适配器

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。