Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Encja == domena? mapowanie doctrine , projekcje
Boshi
post 7.06.2019, 13:21:27
Post #1





Grupa: Zarejestrowani
Postów: 339
Pomógł: 15
Dołączył: 30.08.2011

Ostrzeżenie: (0%)
-----


Bawię się architekturą hexagonalną, cqrs i mam dwie wątpliwości.

1 czy encję można uznać za model domenowy? mapowanie trzymam w xmlu na poziomie infrastruktury, sama encja nie ma pojęcia, że jest mapowana pod spodem. Jedynie do czego mogę się przyczepić, to wymóg posiadania id przez encję, co trochę się kłóci z modelem domenowym, tak mi się wydaje.


2 do czego tak na prawdę służą projekcję? obecnie spotkałem się z wykorzystaniem ich do budowy viewObiectów i zwracania ich. Mógłbym prosić jakiś przykład?

3 czy budując widok w warstwie aplikacji, tworzymy osobne interfejsy które będą implementowane w warstwie infrastruktury ?

Przykłąd

klasa user jako obiekt domenowy. Potrzebujemy wyciągnąć obiekt z bazy danych. Więc w warstwie aplikacji tworzymy obiekt widoku który będzie zwracany w repozytorium. O co mi chodzi, o to czy chcąć pobrać jakieś dane o użytkowniku powinniśmy tworzyć niezależną klasę w warstwie infrastruktury od klasy która np dodaj użytkowników do bazy ? Czy wszystko można władować np w klasę user. Wtedy będzie ona odpowiedzialna za dodaawanie, pobieranie danych itd. Takie repozytorium

infra:
doctrine:
orm:
user implements UserWrite
{pfunction: add, update etc}
dbal
userViewDbal implements userQuery - z warstwy aplikacji
pfucntion getby... (return new UserView()

Ten post edytował Boshi 7.06.2019, 13:44:34
Go to the top of the page
+Quote Post
destroyerr
post 7.06.2019, 17:26:35
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


Cytat
1 czy encję można uznać za model domenowy? mapowanie trzymam w xmlu na poziomie infrastruktury, sama encja nie ma pojęcia, że jest mapowana pod spodem. Jedynie do czego mogę się przyczepić, to wymóg posiadania id przez encję, co trochę się kłóci z modelem domenowym, tak mi się wydaje.

Możesz uznać wszystko za wszystko. Nie ma jednej precyzyjnie zdefiniowanej drogi i nie każdy program musi wyglądać tak samo. Jeśli już się uprzesz to encja jest jednym z bloków (wg DDD i building blocks), więc jest elementem dziedziny. Jeśli nie potrzebujesz id to je usuń a jeśli jest Ci potrzebne to zostaw, nie przyjdzie do Twojego domu inkwizycja sprawdzać czy encja ma "sztuczne" id czy nie.

Cytat
2 do czego tak na prawdę służą projekcję? obecnie spotkałem się z wykorzystaniem ich do budowy viewObiectów i zwracania ich. Mógłbym prosić jakiś przykład?

Projekcje to raczej z event sourcingu, służą do przedstawienia stanu domeny i faktycznie użycie ich ma sens tylko w widoku. Przykładów w internecie jest wystarczająco.

Cytat
3 czy budując widok w warstwie aplikacji, tworzymy osobne interfejsy które będą implementowane w warstwie infrastruktury ?

Tego pomysłu chyba nie rozumiem, a w podanym przykładzie to już wszystko jest wymieszane ze wszystkim.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.10.2019 - 04:05