@Mylistryx

Как правильно реализовать CRUD при работе с DDD и Yii2?

Как правильно реализовать CRUD? Везде в примерах есть только описание того, как сохранять данные, хочется увидеть пример обратного взаимодействия.
Реальная ситуация:
Хранилище данных - 1С SOAP, причем данные в кошмарной структуре и неудобной для текущего проекта форме, но с этим ничего сейчас не поделать. Для взаимодействия с 1С написана прослойка SoapService которая принимает на вход объект с параметрами запроса и возвращает объект с распарсенным ответом.
В контроллере мне удобней использовать модели (формы) Yii2, т.к. не хочется терять возможности клиентской валидации и прочего, но если исходить из логики, то эти формы не более, чем DTO.
Собственно вопрос:
1. Нормально ли, что ответ из 1С будет отдавать мне не Entity в том виде, как она понимается в DDD, а DTO?
2. Зачем мне нужна Entity в целом, если я могу брать данные сразу из DTO (формы) и передавать их в слой работы хранилища?
  • Вопрос задан
  • 433 просмотра
Решения вопроса 1
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
1. В DDD подразумевается предметная разработка. Соотвественно CRUD тут не совсем правильно делать. Тут нужно работать с UseCase: создай товар, удали товар, оплатить товар, архивировать товар. Это уже больше чем CRUD.
2. Во фреймворке делайте своё ядро, которое принимает DTO. Запихиваете данные в DTO далее передаёте в сервис, обрабатываете данные и пихаете через Repository в базу. В принципе все просто. Можете посмотреть курс Елисеева Дмитрия по работе с интернет магазином. Если говорить о примерах, то вот, правда на симфони.

Так же есть пример из самого магазина
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы