Pull to refresh
15
0
Send message

UseCase и Интеракторы так же приведены в статье, и они так же есть в репозитории https://github.com/annysmolyan/symfony-ddd-clean-architecture-blog/tree/main/source/src/CategoryFeature/Domain/Interactor (если мы рассматриваем CategoryFeature), Для DoctrineDataFeature я не использовала интеракторы/usecase, тк это просто хранилище данных и вся основная логика должна быть в CategoryFeature, а не датаСтораджФичи. Конечно, вы можете ввести интеракторы и в датаСторадж фиче, если считаете нужным. Я этого для данного примера не делала

Мне кажется, что вы немного не так поняли. Есть фича CategoryFeature, там доменная модель категории никак не связана ни с доктриной, ни с ее аннотациями. Там вообще используются ValueObject. Это отдельная фича для работы с категорией.

То, что вы пишите, наверное, вы имеете ввиду модель категории из DoctirneDataFeature, где конечно же доменная модель будет "напичкана" доктриновскими аннотациями, тк предназначение этой фичи - это работа с доктриной и только с ней, соответсвенно доменные модели связаны с доктриной.

Модель категории не является и domain и doctrine, тк это абсолютно две разные фичи. Как раз я и сделала абстрогирование, вы можете написать не DoctrineDataFeature, а, например, CsvDataFeature и описать доменную модель контретно для этого дата сторадж так, как вам нужно. При этом CategoryFeature ничего не знает о том, где храняться данные. Там просто используется "порт" для работы с дата сторадж.

Иными словами, дата сторадж вынесен отдельно, работа с категорией тоже отдельно. При изменении дата стораджа сама CategoryFeature не страдает, все что нужно - это переопределить в di фичу дата стораджа, которую нужно использовать

Information

Rating
Does not participate
Registered
Activity

Specialization

Backend Developer
Lead
Git
PHP
OOP
Magento
Symfony