我正在研究我的HMVC项目。
现在我正在使用数据映射器来在模型(域对象)和MySQL数据库之间移动数据。每个映射器都接收一个MySQL适配器作为依赖项。注入的适配器接收PDO实例(数据库连接)作为依赖项,并在数据库上运行SQL查询。
我还使用依赖注入容器(Auryn)。
我希望能够同时从不同类型的存储(MySQL数据库,PostgreSQL数据库,XML提要等)中检索数据。
我想说,我想从 User
数据库中检索PostgreSQL
数据(使用 PDO
数据访问抽象),更改它,并将其保存到另一台服务器上的 MySQL
数据库(通过使用 mysqli
数据访问抽象)。因此,两种数据库类型都会有不同的数据访问调用。
我的问题是:
我应该为每种存储类型创建不同的映射器,例如
UserMapperPgsql(PgsqlAdapter $adapter)
UserMapperMySql(MySqlAdapter $adapter)
,或者我应该只创建一个包含更多适配器的映射器(每种数据类型一个)作为依赖项,如下所示?
UserMapper(PgsqlAdapter $adapter1, MySqlAdapter $adapter2, ...)
谢谢大家的建议!
答案 0 :(得分:0)
你有一个奇怪的项目。
反正。我会选择两个独立的映射器来分别存储介质。因为尝试在映射器中兼顾这些适配器可能会变得非常复杂。
也就是说,根据持久性逻辑实际结束的复杂程度,您可以通过查找repositories作为简化API的方法而受益,该方法会暴露在您的应用程序逻辑中。实际上已经完成了。