Symfony2从数据库加载设置

时间:2013-09-13 11:37:10

标签: php database caching symfony settings

我有一个db表(doctrine实体),用于存储我的应用程序的一些可编辑设置,如页面标题,维护模式(开/关)和其他一些东西..

我可以使用实体管理器和存储库正常加载设置,但我认为这不是最好的解决方案......

我的问题是: - 我可以在某个内核事件中仅加载一次设置,然后以与访问yml配置文件中保存的任何其他设置相同的方式访问它们。

  • 如何缓存数据库设置,因此我只会进行一次数据库查询,然后在将来的页面请求中,它会使用缓存的值,而不是为每个页面请求执行数据库查询? (当然,每当我在设置中更改某些内容时,我都需要清除该缓存,以便新设置生效)

1 个答案:

答案 0 :(得分:2)

LiipDoctrineCacheBundle提供了一个围绕Doctrine公共缓存(documentation)的服务包装器,它允许您使用多个缓存驱动程序,如filesystem,apc,memcache,......

我建议您从bundle-extensioncompiler-pass的数据库加载通用容器参数/设置(如维护模式......)。

路径特定设置(如页面标题,...)可以加载到kernel event listener。您可以找到内核事件列表here

使用doctrine postUpdate / postPersist / postRemove listener更新/使其缓存无效。