젠드 프레임 워크에서 애플리케이션을 개발 중이며 컨트롤러, 서비스, 도메인 모델 및 매퍼와 같은 레이어가 있습니다.어디 PHP는 objectToArray 로직을 넣어? 어느 층?
내 도메인 개체는 여러 가지 목적으로 배열로 표시되어야합니다. 예를 들어, 매퍼는 오브젝트를 지속하기 전에 배열로 변환합니다. 이 폼은 배열을 매개 변수로 사용하여 populate()
메서드가 필요합니다. 다른 몇 가지 예도 있습니다.
내 질문은, 어떤 레이어에서 배열로의 변환을 수행해야합니까? 객체의 번역은 사용 된 문맥에 따라 약간 다릅니다. 오브젝트 ID는 새 오브젝트를 지속 할 때 필요하지 않지만 갱신 사항을 지속 할 때 또는 양식을 채울 때 필요합니다.
내가 알 수있는 한 두 가지 옵션이 있습니다. 옵션 1은 각 구성 요소 (즉, 매퍼, 양식 등)에서 번역을 수행하는 것입니다. 옵션 2는 도메인 객체 자체에 넣고 클라이언트 코드가 매개 변수를 전달하도록하여 어떤 배열 변형이 필요한지 결정합니다. $array = $domObject->toArray('populateForm');
옵션 1에는 상당한 양의 중복이 포함되지만 관심 규칙의 분리를 준수하는 것으로 보입니다. 옵션 2는 중복을 피할 것이지만 도메인 객체가 다양한 방식으로 자신을 표현하는 것에 관심을 가져야하는지 확신하지 못합니다.
아마도 도메인 객체는 '바닐라'배열을 생성해야하며 각 구성 요소는 자체 용도로 맞게 조정해야합니까? 또 다른 요점은 패턴과 관련이 있습니다. 데코레이터 또는 다른 패턴을 적용해야할까요?
귀하의 의견에 감사드립니다!