Symfony与不同的实体经理合作

Symfony与不同的实体经理合作,symfony,entitymanager,entities,Symfony,Entitymanager,Entities,我想创建一个应用程序,其中包含一些子部分,例如博客和论坛。现在,我希望用户能够在我的网站上创建一个帐户,并使用该帐户,他们可以使用论坛和博客。到目前为止这很容易。但是我想将这些表保存在单独的数据库中,以保持一个良好且干净的结构。假设我使用3个数据库,一个用于UserBundle,一个用于BlogBundle,另一个用于ForumBundle。这需要3名实体经理。但这意味着我不能使用ForumBundle或BlogBundle中的实体与UserBundle中的用户实体之间的关系。只需在其他管理器的

我想创建一个应用程序,其中包含一些子部分,例如博客和论坛。现在,我希望用户能够在我的网站上创建一个帐户,并使用该帐户,他们可以使用论坛和博客。到目前为止这很容易。但是我想将这些表保存在单独的数据库中,以保持一个良好且干净的结构。假设我使用3个数据库,一个用于UserBundle,一个用于BlogBundle,另一个用于ForumBundle。这需要3名实体经理。但这意味着我不能使用ForumBundle或BlogBundle中的实体与UserBundle中的用户实体之间的关系。只需在其他管理器的映射下添加UserBundle,就可以在其他数据库中创建新表,而这正是我试图避免的。 那么,有没有办法让bundle“意识到”其他bundle中的实体?
我知道从技术上讲,让bundle依赖于其他bundle并不是一件好事,但我该如何实现我的想法呢?

一种对我来说相当有效的方法是使用事件系统进行查询

假设您在论坛包中,您已检索到给定线程的帖子列表,现在您需要每个帖子的用户信息。创建一个用户id数组,然后:

$userIds = array(...list of users you need information for...);

$findUsersEvent = new FindUsersEvent($userIds);

$dispatcher->dispatch('FindUsers',$findUsersEvent);

$users = $findUsersEvent->getUsers();
现在我有了一个用户信息列表,所有这些信息都按照用户id进行了很好的索引,然后我可以从中提取额外的信息

论坛和用户捆绑包之间的唯一耦合是FindUserEvent类,它可能位于某种公共捆绑包中。论坛捆绑包不关心用户的加载方式。用户包只需要一个侦听器

==================================================================


第二种方法是基本上使用REST类api来获取用户信息。

我将尝试一下。非常感谢。