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

我正在进行重载的Symfony优化,尝试使用模板缓存,教义缓存等。但是除非我错了,否则这些缓存在dev中被禁用,因此很难评估这些优化的效果。

有没有一种方法可以在开发模式下启用缓存,因此我可以在保留调试栏的同时获得应用程序优化结果?

hc1239 回答:如何在开发模式下启用缓存?

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

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

  • 在生产环境中未启用默认教义缓存。如果要启用缓存,则需要自己进行操作(通过在config/packages/prod/doctrine.yml中创建适当的文件,但是首先需要确切验证所需的缓存类型以及如何配置它。检查一些有关教义缓存here的文档。


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

config/packages/dev/内部应该已经有一些。

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

例如您可以在其中加入config/packages/dev/doctrine.yml(基本的教义缓存配置):

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
,

您是否检查了每个部分的配置?例如,在较早的Symfony版本中,可能会在某个位置(取决于您启动项目的Symfony版本,例如位于config/packages/dev/twig.yaml处)中定义Twig缓存的文件如下:>

twig:
    cache: false

通过将其设置为有效的缓存目录,无论运行应用程序的环境如何,都可以启用缓存。

在其他程序包中,可能会有类似的设置。寻找覆盖设置,在config/packages/devconfig/packages/prod中查找较新的版本,或者在文件config/services_prod.yamlconfig/services_dev.yaml中查找较旧的版本。但是,如果不知道您使用的是哪个软件包,很难提供一个普遍的答案。

,

您可以尝试将应用程序临时切换到prod环境,然后将config/dev/web_profiler.yaml复制到config/prod/web_profiler.yaml

请记住,这只是临时更改,请勿将其部署到生产中!

本文链接:https://www.f2er.com/3112323.html

大家都在问