如何使用DoctrineCacheBundle

时间:2016-08-18 07:51:24

标签: symfony caching doctrine-orm

如何使用DoctrineCacheBundle?我想缓存查询(这样每次都不会转换为SQL,对吧?)。我也想缓存结果。

我已经设置了这样:

doctrine:
    orm:
        metadata_cache_driver:
            cache_provider: metadata_cache
        query_cache_driver:
            cache_provider: query_cache
        result_cache_driver:
            cache_provider: result_cache

doctrine_cache:
    providers:
        metadata_cache:
            apc: ~
        query_cache:
            apc: ~
        result_cache:
            apc: ~

在我的控制器中:

$cache = $this->get('doctrine_cache.providers.query_cache');
if ($cache->contains('someid')) {
    $surveysEntities = $cache->fetch('someid');
} else {
    $surveysEntities = $this->getDoctrine()->getRepository('MyBundle:Survey')->getSurveys();
    $cache->save('someid', $surveysEntities);
}

这会只缓存查询吗?或者查询和结果?够了吗?或者我也应该在我的存储库中查询?

1 个答案:

答案 0 :(得分:0)

好的,明白了。此缓存结果。查询通过config缓存doctrine。设置。