2011-03-17 2 views
1

방금 ​​Zend (& OO PHP)를 배우기 시작했습니다. 지난 4 ~ 5 주간 학습, 튜토리얼, 책 등을 보냈습니다. 좋지만 기분이 좋지는 않을 것입니다. 모델 (thats ok, 나는 배우고있다)에서. 나는 이제 첫 번째 앱을 시작했다. 그것은 적어도 5 개의 주요 섹션 (로그인 + ACL 필요)을 포함하고, 부부는 admin : 사용자 생성, 편집 사용자 등 최대 10-12 개의 하위 섹션을 가질 것입니다.젠드 프레임 워크 :: 일반 앱 디자인 질문

하나의 레이아웃을 생성했습니다. 대부분의 페이지 뷰를 작동 링크로 만들었으며 양식 중 일부는 이미 완성되었습니다.

이제 주요 관심사는 리팩토링하고 주요 섹션의 모듈을 손에서 떼어 놓아야합니다. 그렇지 않으면 걱정할 필요가 없습니다. 한 가지 내가 잘못 생각한 것은 'AdminController'를 가지고 있지만 'UserController'의 각 'user'작업에 대한 링크 이상의 관리 뷰를 가져 오는 것이 아닙니다. AdminController에 사용자 작업을 넣어야한다고 생각합니다. 나는 'admin'모듈, 'reports'모듈, 'auth'모듈 등을 만들어야한다고 생각하고 있습니다. 아니면 8 개의 컨트롤러로 끝나고 성장하는 것이 정상입니까? 나는 이미 내 일에 최선을 다하고 싶다는 말은하지 않고 개발자의 사이트 맵을 만들고 유지할 의향이있다.

답변

2

원칙적으로 나는 각 기능 집합 - 뉴스, 사용자, 갤러리 등 "모듈을"플러그인 "하면 백엔드 관리자 및 프런트 엔드 디스플레이에 기능을 제공합니다. 모델, 액션 헬퍼, 헬퍼보기, 스크립트보기와 같은 모든 기능을 포함하는 독립적 인 장소입니다. 등 - 당신은 그 콘텐츠 영역에 필요한. 특정 영역에 전용 인 모듈 당 2 개의 컨트롤러 - News_BackendController 및 News_FrontendController가있을 수 있습니다.

하지만 실제로는 ZF 모듈로 어렵게 만듭니다. 나는 저보다 똑똑한 사람을 압니다. 낮은 바는 확실합니다. 모든 것을 작동시킬 수는 있지만, 결코 그걸로 운이 없었습니다.

그래서 보통 프론트 엔드와 백엔드의 두 모듈로 끝납니다. 예를 들어, 뉴스 기능의 경우 콘텐트 관리를위한 백엔드 모듈에 뉴스 컨트롤러가 있어야합니다. 프론트 엔드 모듈에 다른 뉴스 컨트롤러가 표시됩니다.

이 설정에서 나를위한 고정 점은 프론트 엔드와 관리자 모두에게 공통적 인 모델 기능을 배치 할 위치입니다. 한 가지 아이디어는 별도의 라이브러리에 넣고 모듈 별 기능을 확장하는 모듈 별 모델을 만드는 것입니다. 다음과 같이 :

MyLibary_Model_News 일반적인 뉴스 기사입니다.

Frontend_Model_News extends MyLibrary_Model_News (있는 경우).

Admin_Model_News extends MyLibrary_Model_News (있는 경우)에 대한 모든 백엔드 뉴스 기능에 대한 것입니다.

몇 가지 아이디어가 있습니다. 언제나처럼, YMMV.

+0

시간을내어 주셔서 감사합니다. 내 대답이 조금 더 넓어졌습니다. 내 프로젝트에는 '프런트 엔드'가 없기 때문에 백엔드가 컨트롤러의 성장을 상당히 줄여 줄 것이라고 생각합니다. 이 프로젝트는 인증/ACL에 의해 제어되는 데이터베이스 앱이 될 것이지만 비공개 앱입니다. – rhaag71

+0

Glas 도움이되었습니다. 받아 줘서 고마워. ;) –