With symfony 3.1 we got Cache Component (https://github.com/symfony/cache)
I can't find any documentation or examples for this component because it's new.
Can anybody write simple example how to use this component with symfony 3.1
With symfony 3.1 we got Cache Component (https://github.com/symfony/cache)
I can't find any documentation or examples for this component because it's new.
Can anybody write simple example how to use this component with symfony 3.1
缓存组件主要用于 Symfony 内部的序列化器等。
但是最新的 FrameworkBundle 已经支持通过 config.yml 创建自己的缓存池。目前似乎没有任何关于此的文档,所以我挖掘了自己:
在 config.yml 你可以创建一个新的缓存
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
当然你也可以自己定义服务。
然后在您的代码中,您可以使用创建的缓存池来创建 CacheItems 并缓存它们:
$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