缓存池和支持的适配器
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.3,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
缓存池和支持的适配器
缓存池的逻辑存储库缓存项。他们在项目执行所有常见的操作,例如保存或寻找它们。缓存池是独立于实际的缓存实现。因此,应用程序可以继续使用相同的缓存池即使底层的缓存机制的变化从一个基于文件系统缓存复述或数据库缓存。
创建缓存池
通过创建缓存池缓存适配器类,实现AdapterInterface。此组件提供了几个适配器可以使用在你的应用程序。
寻找缓存条目
缓存池定义三种方法寻找缓存项。最常见的方法getItem(键)
,它返回缓存条目被给定的关键:
1 2 3 4
使用ob娱乐下载\组件\缓存\适配器\FilesystemAdapter;美元缓存=新FilesystemAdapter (“app.cache”);美元latest欧宝平台是合法的吗News=美元缓存- >getItem (“latest_欧宝平台是合法的吗news”);
对于给定的键,如果没有定义项的方法不会返回零
但一个空对象,实现了价值CacheItem类。
如果你需要同时获取多个缓存条目,而不是使用getItems(数组(key1, key2美元,……)
方法:
1 2
/ /……美元股票=美元缓存- >getItems (数组(“apple”,“facebook”,“GOOGL”,“微软”));
再一次,如果任何键并不代表一个有效的缓存项,你不会得到一个零
但一个空值CacheItem
对象。
最后一个方法相关抓取缓存项hasItem(键)
,它返回真正的
如果有一个缓存项被给定的关键:
1 2
/ /……美元hasBadges=美元缓存- >hasItem (“user_”。美元用户标识。“_badges”);
保存缓存条目
最常见的方法保存缓存条目save ()在缓存中存储项立即(它返回真正的
如果项目或保存假
如果有错误发生):
1 2 3 4
/ /……美元userFriends=美元缓存- >getItem (“user_”。美元用户标识。“_friends”);美元userFriends- >集(美元用户- >getFriends ());美元isSaved=美元缓存- >保存(美元userFriends);
有时你可能更喜欢不立即保存对象,以提高应用程序的性能。在这种情况下,使用saveDeferred ()方法将缓存条目标记为“准备坚持“然后调用commit ()方法当你准备坚持:
1 2 3 4 5 6 7 8
/ /……美元isQueued=美元缓存- >saveDeferred (美元userFriends);/ /……美元isQueued=美元缓存- >saveDeferred (美元userPreferences);/ /……美元isQueued=美元缓存- >saveDeferred (美元userRecentProducts);/ /……美元isSaved=美元缓存- >commit ();
的saveDeferred ()
方法返回真正的
当缓存项已成功添加到“坚持队列”和假
否则。的commit ()
方法返回真正的
当所有的等待成功保存或物品假
否则。
删除缓存项
缓存池包括删除缓存项的方法,其中一些或全部。最常见的是deleteItem ()删除缓存项,通过给定的键标识(它返回真正的
当项目成功删除或不存在假
否则):
1 2
/ /……美元isDeleted=美元缓存- >deleteItem (“user_”。美元用户标识);
使用deleteItems ()方法同时删除多个缓存条目(它返回真正的
只有当所有的商品都被删除,即使不存在任何或其中一些):
1 2
/ /……美元areDeleted=美元缓存- >deleteItems (数组(“category1”,“category2”));
最后,清除所有缓存条目中存储池,使用clear ()方法(返回真正的
当所有项目成功删除):
1 2
/ /……美元cacheIsEmpty=美元缓存- >明确的();
提示
如果缓存组件内部使用Symfony应用程序中,您可以删除给定的所有物品缓存池使用ob娱乐下载下面的命令:
1 2 3 4 5 6 7
美元php bin /控制台缓存池:明确< cache-pool-name >#清除缓存。应用程序池”美元php bin /控制台缓存池:cache.app清晰#清除缓存。验证”和“缓存。应用程序池”美元php bin /控制台缓存:缓存池:清楚。验证cache.app