php - 如何在开发模式下启用缓存?

标签 php symfony doctrine twig symfony4

我正在研究重负载的 Symfony 优化,尝试模板缓存、 Doctrine 缓存等。但除非我错了,否则这些缓存在开发中是禁用的,因此很难评估这些优化的效果。

有没有办法在开发模式下启用缓存,以便我可以在保留调试栏的同时查看应用程序优化结果?

最佳答案

请注意,您的问题中有几个假设不正确:

  • 默认情况下,Twig始终被缓存。检查文档 here 。如果由于某种原因您需要在开发过程中禁用缓存,您只能禁用缓存。但更有可能的是,这对你来说并不好。

  • 生产环境中没有默认启用 Doctrine 缓存。如果您想启用缓存,您需要自己执行此操作(通过在 config/packages/prod/doctrine.yml 中创建适当的文件,但您首先需要验证到底是什么类型您需要的缓存以及如何配置它。查看一些有关 Doctrine 缓存的文档 here


最后,更改 dev(或任何环境)上的设置只需在 config/packages/[environment_name] 中使用适当的设置创建另一个文件即可>.

您应该已经在 config/packages/dev/ 中有一些。

要为环境创建特定设置,只需添加几个文件来调整这些设置。

例如你可以有一个 config/packages/dev/doctrine.yml ,里面有这个(基本的 Doctrine 缓存配置):

services:
    doctrine.result_cache_provider:
        class: Symfony\Component\Cache\DoctrineProvider
        public: false
        arguments:
            - '@doctrine.result_cache_pool'
    doctrine.system_cache_provider:
        class: Symfony\Component\Cache\DoctrineProvider
        public: false
        arguments:
            - '@doctrine.system_cache_pool'

framework:
    cache:
        pools:
            doctrine.result_cache_pool:
                adapter: cache.app
            doctrine.system_cache_pool:
                adapter: cache.system

关于php - 如何在开发模式下启用缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58831636/

相关文章:

php - Doctrine 2 : Generated entities from database don't have namespaces

php - 如何在不在 Symfony 中创建实体的情况下访问数据库中的不同表

php - 在网页中嵌入 AVI/MPG

javascript - 在 HTML 中显示 $.post 的结果

php - 如何记录 Doxygen 中不存在的变量?

symfony - 注册验证后 Silex 翻译停止工作

performance - 如何使 Symfony2 使用连接 : Keep-Alive? 返回 HTTP 响应

php - Symfony 2 Doctrine 2 使用 inversedBy 和 mappedBy 进入多对多关系?

php - 在 php for linux 命令中停止错误报告

php - Doctrine2,Symfony2。甲骨文错误 :Class has no field or association named user_id