cygnus / doctrine-magic-embed-bundle
该包已被弃用且不再维护。未建议替代包。
一个用于支持嵌入 Doctrine 文档中一等管理文档版本的 Symfony2 扩展包
dev-master
2014-02-27 03:16 UTC
Requires
- doctrine/mongodb-odm: 1.0.*@dev
- doctrine/mongodb-odm-bundle: 3.0.*@dev
This package is not auto-updated.
Last update: 2020-01-24 15:18:56 UTC
README
此扩展包支持在 Doctrine 文档中嵌入一等管理文档的版本。
问题
在 Doctrine 中,管理文档无法轻松嵌入其他文档。在博客场景中,将作者嵌入每个 Post 文档中非常有用,既可以防止不必要的数据库查询,又可以在文档加载后轻松访问作者的方法或属性。
在 Doctrine 中,您需要要么引用 Author 文档(导致数据库查询),要么嵌入 Author 文档的 EmbeddedDocument 版本(其中更改不会持久化)。您可能还想指定要嵌入的嵌入文档的字段,但目前不支持此功能。
解决方案
此扩展包试图通过提供以下三项来解决这个问题:
- 一个注解驱动器,用于定义在嵌入文档时应使用哪些字段。
- 一个服务,它挂钩到 Doctrine 的加载和持久化事件,根据您使用注解驱动器定义的字段将传递的文档转换为真正的嵌入文档。
- 最后,一个服务,它挂钩到 Doctrine 的持久化功能,将管理文档的更改级联到转换后的嵌入文档。