据我所知,Bundles是分开功能。假设我有UserBundle
&一个BlogBundle
。然后我的BlogBundle:Post
会有一个引用author
的{{1}}字段。这不是打败Bundles的目的吗?我不能换另一个UserBundle:User
?我怎么能以正确的方式做到这一点?或者这是最好的吗?
答案 0 :(得分:6)
如果您对捆绑之间的依赖关系感到不舒服(我个人同意您的意见),您可以在任何捆绑包之外创建模型。这可以这样配置......
doctrine_mongodb:
document_managers:
default:
mappings:
model:
type: annotation
dir: %kernel.root_dir%/../src/MyApp/Model
prefix: MyApp\Model\
alias: Model
ORM的配置看起来很相似。
答案 1 :(得分:3)
Bundles旨在尽可能地分离的功能,但这并不意味着某些人不会依赖其他人。
我认为有趣的是,即使是一些Symfony2组件(它们应该是独立的库)也具有依赖性。例如,HttpKernel
类取决于HttpFoundation
和EventDispatcher
组件中的类。
在您的示例中,如果您需要交换另一个UserBundle
,则必须采取必要措施以确保仍然符合BlogBundle
的依赖关系。这可能意味着您需要重构。
因此,捆绑的目的不会因为一个引用另一个而失败。捆绑包仍然有利于使用,即使它们并非总是100%解耦。