使用 symfony2 缓存 ReadOnly 学说 2 实体的结果

Posted

技术标签:

【中文标题】使用 symfony2 缓存 ReadOnly 学说 2 实体的结果【英文标题】:Caching result for ReadOnly doctrine2 entities with symfony2 【发布时间】:2011-10-15 22:37:06 【问题描述】:

注意:对不起,我的英语很差,我是法国人,但我会尽量说清楚。

我正在使用 Symfony2 进入 Doctrine2。只是制作一个有趣的小游戏来学习新东西并测试这些新的很棒的工具。这是我的交易:我想将我的游戏配置存储到数据库中(如项目、比赛信息等),以便从实体的便捷语法中受益:

$user->getRace()->getName();

关键是“种族”或“项目”信息不太可能改变。我发现了 @ReadOnly 实体注释,它告诉 Doctrine 在第一次插入后不要检查这些实体中的更新。 我想知道您是否知道一种“透明”(我的意思是教义为我做的)缓存这些结果的方法,以防止每次检索我的用户信息时出现无用的连接。

【问题讨论】:

【参考方案1】:

@ReadOnly 注释所做的唯一事情就是告诉 Doctrine 不要在刷新时更新实体。事件如果已更改,则不会更新。

所以它与查询无关。

如果你想缓存 Race 或 Item 对象,你应该使用result cache。它使您能够缓存任何查询的结果。

为了使其更易于使用(和可重用),您可以实现自定义注释,这将使对引用实体的查询自动使用结果缓存。

【讨论】:

好的,非常感谢您的帮助。我将为此提交对 Doctrine2 跟踪器的改进,我现在将尝试自己实现注释。

以上是关于使用 symfony2 缓存 ReadOnly 学说 2 实体的结果的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2 会话和缓存:清除命令

Symfony2禁用缓存?

如何正确地使 Symfony2 应用程序的生产缓存无效?

在symfony2中渲染数据时删除第一行

Symfony2 +Vagrant 性能 - 运行缓慢 - 加速?

使用 symfony2 clear cache 命令不刷新静态资产