在Symfony 2和耦合中集成Bundles(相关的Doctrine 2实体)

时间:2011-12-26 13:21:48

标签: symfony doctrine-orm coupling

据我所知,Bundles是分开功能。假设我有UserBundle&一个BlogBundle。然后我的BlogBundle:Post会有一个引用author的{​​{1}}字段。这不是打败Bundles的目的吗?我不能换另一个UserBundle:User?我怎么能以正确的方式做到这一点?或者这是最好的吗?

2 个答案:

答案 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类取决于HttpFoundationEventDispatcher组件中的类。

在您的示例中,如果您需要交换另一个UserBundle,则必须采取必要措施以确保仍然符合BlogBundle的依赖关系。这可能意味着您需要重构。

因此,捆绑的目的不会因为一个引用另一个而失败。捆绑包仍然有利于使用,即使它们并非总是100%解耦。