在Symfony 3中使用缓存组件的最佳实践

时间:2017-06-28 13:09:29

标签: symfony caching symfony4 symfony-3.4

在Symfony 3中使用缓存组件的最佳做法是什么?

简单示例:

如果我从不同的地方(Controller,FormType,Twig函数,Listener,...)调用getCategoryById(在Repository中),我该如何验证数据是否被缓存?

问题:

我无法在存储库中调用缓存组件,而且我不想在每个位置编写和复制相同的代码( isHint ... )。

问题:

那么最佳做法是什么?在所有组件和存储库之间创建中间缓存服务?

非常感谢:)

1 个答案:

答案 0 :(得分:-1)

所以我不知道这是否能将你的问题回答为100%,但非常好的是SNCRedisBundle你有一些缓存提供者用于缓存不同部分的学说。文档中的简短示例。

snc_redis:
    ...
    doctrine:
        metadata_cache:
            client: cache
            entity_manager: default          # the name of your entity_manager connection
            document_manager: default        # the name of your document_manager connection
        result_cache:
            client: cache
            entity_manager: [default, read]  # you may specify multiple entity_managers
        query_cache:
            client: cache
            entity_manager: default
        second_level_cache:
            client: cache
            entity_manager: default

https://github.com/snc/SncRedisBundle/blob/master/Resources/doc/index.md

它运作良好,也许你可以使用它。