3

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

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

我的问题是: - 我可以在某个内核事件中只加载一次设置,然后像访问保存在 yml 配置文件中的任何其他设置一样访问它们吗?

  • 我怎样才能缓存数据库设置,所以我只会做一个数据库查询,然后在未来的页面请求中,它会使用缓存的值,而不是为每个页面请求做一个数据库查询?(当然,每次我更改设置中的某些内容时,我都需要清除该缓存,以便新设置生效)
4

1 回答 1

2

LiipDoctrineCacheBundle为 Doctrine 的公共缓存(文档)提供了一个服务包装器,它允许您使用多个缓存驱动程序,如文件系统、apc、memcache...

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

特定于路由的设置(如页面标题,...)可以加载到内核事件侦听器中。您可以在此处找到内核事件列表。

使用教义 postUpdate/postPersist/postRemove侦听器更新/使他们的缓存无效。

于 2013-09-13T11:48:29.747 回答