oop — PHP MVC: несколько баз данных, несколько картографов данных?

Я работаю над моим проектом 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

Решение

Какой у вас там странный проект.

Тем не мение. Я бы пошел с двумя отдельными мапперами для отдельных носителей. Потому что попытка манипулирования этими адаптерами внутри картографа может оказаться довольно сложной.

Тем не менее, в зависимости от того, насколько сложна логика персистенции на самом деле, вы можете извлечь выгоду из поиска хранилища как подход к упорядочению API, это показывает, где фактически выполняется ваша «логика приложения».

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector