使用symfony 3.1,我们得到了缓存组件(https://github.com/symfony/cache)
我找不到此组件的任何文档或示例,因为它是新的。
任何人都可以写一个简单的例子,说明如何在symfony 3.1中使用这个组件
答案 0 :(得分:10)
缓存组件主要在Symfony for Serializers等内部使用。
但是最新的FrameworkBundle已经支持通过config.yml创建自己的缓存池。 目前似乎没有关于此的任何文档,所以我深入了解:
在config.yml中你可以创建f.e.新缓存
framework:
...
cache:
default_redis_provider: redis://%cache.redis_host%:%cache.redis_port%/%cache:redis_db%
pools:
my_cache:
adapter: cache.adapter.redis
public: true
default_lifetime: 1200
provider: cache.default_redis_provider
当然,你也可以自己定义服务。
在您的代码中,您可以使用创建的缓存池来创建CacheItem并缓存它们:
$cacheItem = $this->get('my_cache')->getItem($cacheKey = $item->getId());
if(!$cacheItem->isHit()){
$cacheItem->set($item);
$cacheItem->expiresAfter(null); //this needs to be called to use defaultTime
$this->get('my_cache')->save($cacheItem);
}
如果缓存中不存在Psr-6 CacheItem,则由池创建 它将获得它首先被查询的密钥。然后,您可以设置值和到期时间并将其保存到缓存中。
有关使用PSR-6缓存执行的操作的更多信息,请参阅此处:http://www.php-fig.org/psr/psr-6/
组件的symfony文档(注意:仅用于组件,而不用于框架集成)仍然是PR,但您可以在此处预先检查它: https://github.com/symfony/symfony-docs/pull/6515