Здравствуйте.
В процессе реализации DDD застопорился на следующем:
Приложение хранит часть данных в БД, часть данных реализует через API к удаленному серверу. Соответственно было принято решение создать сущности на те данными, которые соотносятся с таблицами в БД - это для маппинга ORM, а другие соотнести с данными, необходимыми для работы с API . Полученные сущности по типу решено объединить в соответствующие Domain Model-s, которые бы отвечали поставленным бизнес требованиям.
Т.е. для примера:
class PostEntity{
private $id;
private $externalId;
private $userId;
private $date;
}
class ExternalPostEntity{
private $id;
private $postCode;
private $author;
private $title;
private $description;
}
class PostModel{
private /*PostID*/ $postId;
private /*User*/ $user;
private /*Date*/ $date;
private $title;
private $description;
private $code;
}
Для работы с сохранением данным, создается репозиторий, внутри которого происходит обработка данных для БД через маппинг ORM и так же обработка и маппинг чепрез запросы к API . При вызове методов find*() собирается DomainModel соответственно.
Вопрос в том, насколько объективна такая реализация, или поискать другие варианты ?