是否有任何用于Symfony / Cache组件的文档或示例?

时间:2016-06-03 12:04:52

标签: caching symfony-3.1

使用symfony 3.1,我们得到了缓存组件(https://github.com/symfony/cache

我找不到此组件的任何文档或示例,因为它是新的。

任何人都可以写一个简单的例子,说明如何在symfony 3.1中使用这个组件

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