跨数据库/实体管理器共享实体和数据

时间:2015-12-23 15:07:07

标签: symfony doctrine-orm

我目前正在构建一个庞大的Symfony2项目,该项目包含一个中央应用程序(让我们称之为#34; Main"以及不同的独立项目,主要是在Symfony2上(让&# 39; s称这些"卫星")。

Main项目将拥有自己的数据库,每个Satellite也都有。但是,主项目将管理一些关键数据(用户,角色等),并且这些数据需要在每个卫星上提供。这意味着某种"复制"从某些实体到数据库列表(由其他Symfony2应用程序管理,或不是)

实际工作的部分是映射。我有一个Bundle,它提供User和Role模型类。其他包只需要扩展这些类( FOSUserBundle 样式),映射将正确执行。

我实际上正在努力解决"复制"从主项目到每个卫星数据库。基本上完美的工作流程将是:

  1. 在Main
  2. 上添加/删除/更新用户或角色
  3. 服务循环通过数据库连接列表
  4. 在每个其他数据库连接上重新执行步骤1中涉及的查询/查询。 这意味着不仅要使用其他实体管理器,而且主要生成纯粹的SQL查询,以便在Satellite不是Symfony2应用程序的服务器上执行
  5. 我可以依赖" onFlush" Doctrine事件,并检索将要更新/持久/删除的实体列表。我完全失去的部分是3。

    甚至可能吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我的一个项目有同样的情况,我们有Main和Satellite应用程序, 所有必需的数据保存在主要和所有应用程序通过API相互通信,也在卫星应用程序中我们有自定义用户提供程序,它是从主服务器验证用户。你可以按照这种方式。 http://symfony.com/doc/current/cookbook/security/custom_provider.html