내 아키텍처에 대한 의견을 보내고 싶습니다. My Zend Framework 프로젝트에는 여러 모듈이 포함되어 있으며 모듈로 페이지를 작성합니다. 여러 모듈이 하나의 페이지를 만들 수 있기 때문에 기본 ZF 앱과 약간 다릅니다. 예를 들어 연락처 페이지는 부분 텍스트 (텍스트 모듈)와 문의 양식 (연락처 모듈)으로 구성됩니다. 또는 3 열 페이지에는 3 개의 텍스트 모듈이 한 페이지에서 실행됩니다. 지금까지 그렇게 좋았습니다 (이 모든 것이 훌륭합니다). 이제ZF 관리자의 아키텍처 조언
관리 인터페이스
우리의 관리자. 관리 인터페이스에서 우리는 하나의 페이지를 편집하고 하나의 모듈은 편집하지 않습니다. 단일 페이지는 하나 이상의 Zend_Form 인스턴스를 가질 수 있습니다. 예를 들어 텍스트는 텍스트 영역으로 편집 할 수 있고, 문의 양식은 일부 입력 필드에서 편집 할 수 있습니다. 그것들은 더 큰 Zend_Form 인스턴스의 하위 폼으로 뷰에 표시되어야합니다. 또한 html을 (예 : 스크립트보기) 표시해야합니다 (예 : 포트폴리오의 블로그 기사 또는 프로젝트 목록). 모든 모듈이 "관리 가능"은 아닙니다 (예 : 사이트 맵, 구성 할 것이 없습니다).하지만 생성, 업데이트 및 삭제를 지원해야합니다.
현재 아키텍처
우리는 서비스를 이제 작동합니다. 확인하기 쉽습니다 (Portfolio_Service_Admin 클래스가 있고 Admin_Service_AdminInterface를 구현합니까?). 그러나 포트폴리오는 이미 구현이 어려워집니다. 서비스는 일종의 컨트롤러 역할을하며 포트폴리오 생성, 업데이트 및 삭제를 지원할뿐 아니라 포트폴리오 카테고리의 CRUD 및 포트폴리오 프로젝트의 CRUD (한 클래스에서!)를 지원합니다. 이 명확하지 않으면
, 나는 우리의 현재 접근 한 후
에 대한 자세한 정보를 추가 할 수 있습니까?
서비스가 일종의 컨트롤러로 작동하기 때문에 컨트롤러 (duh)를 생각하고있었습니다. 유일한 단점은 컨트롤러가 return 양식을 사용하여이 모듈 양식을 더 큰 양식의 하위 양식으로 추가하는 것입니다 (응답에 추가되지 않음). 또한 한 페이지에 여러 모듈이 있으면 디스패치 루프가 반복적으로 많이 실행되므로 그리 효율적이지 않습니다.
So : 이것을 제어하는 방법에 대한 제안이 있습니까?
관리 영역에서 페이지를 편집 할 때 많은 하위 폼이있는 Zend_Form이 제출됩니까? 하위 폼을 통과하고 각 부분을 적절한 모듈에 위임하기에 충분한 지능형 페이지 컨트롤러가 있습니까? –
예, 모든 것이 이미 내 서비스 접근법에 잘 작동합니다 (그리고 마지막으로 새로운 방법을 사용할 수 있다면 변경되지 않을 것입니다). Admin_Service_Form은 Application_Model_Page를 받아들이므로 서비스는 페이지에있는 모듈을 알고 있습니다. 결과적으로 모든 모델은 양식을 반환하도록 요구받습니다. 그리고 POST 후에 서비스는 모듈을 다시 호출하여 변경 사항을 적용합니다. 심지어 18n 구현됩니다 :) –