PHP MVC:多个数据库,多个数据映射器?

PHP MVC: Multiple databases, multiple data mappers?

我正在处理我的 HMVC 项目。

现在我正在使用数据映射器在模型(域对象)和 MySQL 数据库之间移动数据。每个映射器接收一个 MySQL 适配器作为依赖项。注入的适配器接收 PDO 实例(数据库连接)作为依赖项并在数据库上运行 sql 查询。

我还使用依赖注入容器 (Auryn)。

我希望能够同时从不同类型的存储(MySQL 数据库、PostgreSQL 数据库、XML 提要等)检索数据。

比方说,我想从 PostgreSQL 数据库 中检索 User 数据(通过使用 PDO 数据访问抽象),更改它,并将其保存到 MySQL 数据库(通过使用 mysqli 数据访问抽象)在另一台服务器上。因此,这两种数据库类型将有不同的数据访问调用。

我的问题是:

我是否应该为每种存储类型创建不同的映射器,例如

UserMapperPgsql(PgsqlAdapter $adapter) 
UserMapperMySql(MySqlAdapter $adapter)

,或者我应该只创建一个具有更多适配器(每个数据类型一个)作为依赖项的映射器,如下所示?

UserMapper(PgsqlAdapter $adapter1, MySqlAdapter $adapter2, ...)

谢谢大家的建议!

你那里的项目真奇怪。

无论如何。我会为单独的存储介质使用两个单独的映射器。因为尝试在映射器中处理这些适配器可能会非常复杂。

也就是说,根据持久性逻辑实际结束的复杂程度,您可能会受益于查找 repositories 作为简化 API 的方法,它会暴露在您的 [=17] 的位置=]实际上已经完成了。