Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Encje w Domain Driven Design, DDD
Psajkus
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 5
Dołączył: 26.06.2011

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


Siema,
pisze do was z następującym problemem... zastanawiam się czy we dopuszczalne jest uzycie repozytorium w encji, (chodzi mi o metode setProfil)

  1. class UserEntity
  2. {
  3. //jakies atrybuty
  4.  
  5. //jakies metody
  6.  
  7. /** @var ProfilEntity */
  8. private $_oProfil;
  9.  
  10. public function addProfil(ProfilEntity $oProfilEntity)
  11. {
  12. $this->_oProfil = $oProfilEntity;
  13. }
  14.  
  15. public functin getProfil()
  16. {
  17. if(!isset($this->_oProfil)
  18. {
  19. return $this->setProfil();
  20. }
  21. else
  22. {
  23. return $this->_oProfil;
  24. }
  25. }
  26.  
  27.  
  28. private function setProfil()
  29. {
  30. $oProfilRepository = new ProfilRepository;
  31.  
  32. return $oProfilRepository->find();
  33. }
  34.  
  35.  
  36. }
  37.  
  38. class ProfilEntity
  39. {
  40. //jakies atrryburty i metody
  41. }
  42.  



Czy powinienem odwoływac się do repozytorium z poziomu encji czy raczej przeslać obiekt (wykorzystujac metode addProfil). Jak wy robicie?

Ten post edytował Psajkus 26.06.2011, 11:12:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Pierwsze podejście to tzw. "eager fetching" czyli pobranie wszystkiego zawczasu. Jeżeli wiesz że będziesz potrzebować obiektu UserProfile dla (niemalże) każdego obiektu User powinieneś zastosować tą metodę.
Drugie podejście jest niemalże z definicji złe.
Trzecie podejście to tzw. "lazy fetching" czyli dobieranie obiektu UserProfile na żądanie (w momencie wywołania User::getProfile()). Przydatne gdy obiektu UserProfile będziesz potrzebować dla bardzo nielicznych obiektów User z całej kolekcji.

Jak już wcześniej powiedziałem więcej na temat obu metod znajdziesz w sieci.

Cytat
poza tym w tym projekcie nie moge zastosować Doctrine
Teraz to ja muszę zaspokoić ciekawość. (IMG:style_emoticons/default/wink.gif) Dlaczego?
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 08:06