나는 현재 ORM을 사용하고 가능한 한 DDD를 고수하면서 기존 응용 프로그램을 재 모델링하려고합니다.Doctrine을 사용하는 DDD
작업 지시는 AR이며 12 개 이상의 하위 엔티티가 있습니다. 이 클래스를 다음과 같이 모델링하려고했습니다 :
class WorkOrder {
private $number = 0;
private $manual = '';
...
// Sub-Entities
private $consumables; // Collection (1:m)
private $dimensions; // Collection (1:m)
private $sequences; // Collection (1:m)
...
}
이제이 집계를로드 할 저장소가 필요합니다.
Repo는 서브 엔티티 (간접 getter/setters를 통해 - 점 표기법을 사용하지 않음)에 액세스 할 때 내가 나중에있는 정보를 게으른로드 할 수있는 하나 이상의 집계를 반환합니다. ???
내가 작업 지시를 만드는 공장 역할을하는 다른 클래스해야합니다- 상세한 과정 및 실질적인 비즈니스 로직/유효성 검사 규칙을 포함 ...
그러나 공장 만드는 경우 작업 지시 집계가하는
레포는 단지 AR을 유지합니까?이 팩토리는 (REST 또는 기타를 통해) 타사 서비스를 쿼리해야하며 기본적으로 작업 범위를 설명하는 승인 된 문서의 스냅 샷을 작성해야합니다.
그래서 저장소는 ORM을 캡슐화 했습니까? 아니면 내가 선택한 지속성 계층을 캡슐화합니까?
지금과 같이 보일 것 내 파일 구조 :
createWorkOrderFromRpi()
createWorkOrderFromCsv()
...
I : 같은 방법이있을 것입니다
FindOneByTrackingNumber()
FindAllByCriteria()
save($root);
내 공장 : 저장소 같은 방법이있을 것입니다
WorkOrder/
/Factory.php
/Aggregate.php
/Repository.php
/Entity/Header.php
/Entity/Shipping.php
/Entity/Warranty.php
/Entity/Certification.php
...
을 여기에 여러 기사와 수많은 게시물을 읽었습니다.
http://williamdurand.fr/2013/08/07/ddd-with-symfony2-folder-structure-and-code-first/
디테일이 우수하지만나는 내 자신의 해석에 관한 두 번째 의견을하시기 바랍니다해야합니다. :)
안부, 알렉스
나는이 점에 관해서 여기에서 집으로 돌아 간다. -> http://stackoverflow.com/questions/13894200/making-a-fat-model-in-symfony-2-composition-or-inheritance-and-how- to-configur 이제 DDD를 사용하여 SF2 애플리케이션을 다시 구현하기 시작했습니다. 위 링크를 이용해 주셔서 감사합니다! – calumbrodie