Symfony 2部署 - 缓存处理

时间:2015-11-16 05:08:54

标签: symfony caching doctrine

我按照此link的说明部署我的symfony2应用程序。

我的问题与STEP D严格相关

  

D)清除Symfony缓存确保清除(和预热)你的   Symfony缓存:

$ php app/console cache:clear --env=prod --no-debug

当我运行该命令时,将清除所有symfony缓存,包括doctrine缓存。 我的应用程序高度依赖于doctrine缓存数据,所以我想知道是否有办法避免每次部署时清除doctrine缓存。例如,我可能只在应用程序代码中部署一些小错误修复程序,是否有必要每次清除缓存?如果我在修复小错误后没有清除缓存会怎么样?

只是为了添加更多上下文,我的主要问题是使用doctrine缓存。因为doctrine缓存存储在主symfony缓存文件夹中,而cache:clear转储该文件夹,我也失去了我的doctrine缓存。如果我可以将doctrine缓存与主缓存文件夹(设置自定义路径)分开来解决我的问题。

3 个答案:

答案 0 :(得分:0)

也许您可以将自动部署系统用作Capifony,这样设置和创建“发布”非常简单。

这意味着在部署时,应用程序将存储到新的独立文件夹中,安装供应商,转储资产并清除缓存。此文件夹仅在完成这些过程时用于生产,因此您没有任何停机时间

答案 1 :(得分:0)

强烈建议每次都清除缓存。例如,您创建了一个您依赖的新类。如果您没有清除缓存,则自动加载器不会加载您的新类。当然,仅在生产模式下,因为dev有一个不同的自动加载逻辑。

但是,您的问题没有单一的答案 - 应用程序的行为存在一些与缓存相关的问题" fresh"。您肯定要清除数据库/实体结构更改,路由和类结构,注释,配置。在prod env中,它们被预处理以提高性能 - 在缓存之后,原始值(配置/路由)在下一次缓存清除之前是未使用的。

答案 2 :(得分:0)

例如,当您进行一些设计修复时,您不需要清除所有缓存。您可以转到缓存目录并手动删除要删除的缓存文件,并保持Doctrine缓存不变。