젠드 프레임 워크는 단위 모듈 기반 설정
제가 적은 구성이 필요합니다이 게시물에 대한 follow-up을 만들었습니다, 참조하시기 바랍니다 젠드 프레임 워크 - 모듈 기반 레이아웃 .
사용할 때 젠드 프레임 워크를 사용자가 동일한 응용 프로그램에서 다양한 (하위) 사이트를 운영중인 경우는 반드시 같은 원하지 않는 모듈은 명백한와 레이아웃 스크립트 의 각 부분을. 필자의 경우는 다음 사이트 구조로 결정 :
/ 신청 / 컨트롤러 ... / 모델 / 모듈 / 기본 / 컨트롤러 / 레이아웃 / 스크립트 / 전망 / 스크립트 / anotherModule ... / 스크립트
문제는 당 모듈 단위로 배치 스크립트를 설정했다. 대답은 액션 도우미를 사용 다가왔습니다. 당 모듈 단위로 레이아웃을 설정하는 것은 세 단계를 포함 :
- Application.ini (또는 이와 유사한 구성 설정) :
admin.resources.layout.layoutPath = APPLICATION_PATH "/ 모듈 / 관리자 / 레이아웃 / 스크립트" default.resources.layout.layoutPath = APPLICATION_PATH "/ 모듈 / 기본 / 레이아웃 / 스크립트" member.resources.layout.layoutPath = APPLICATION_PATH "/ 모듈 / 회원 / 레이아웃 / 스크립트" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ 모듈 / 제휴 / 레이아웃 / 스크립트"
- 귀하의 액션 도우미를 만들기 :
<? PHP / ** * 당 모듈 단위로 레이아웃 경로를 설정합니다 * * @ 작성자 로이드 왓킨 <lloyd@evilprofessor.co.uk> * @ 2010년 1월 1일 이후 * / 수업 Pro_Controller_Action_Helper_SetLayoutPath Zend_Controller_Action_Helper_Abstract 확장 { / ** * 모듈을 기반으로 레이아웃 경로를 설정합니다 * / 공용 함수 preDispatch () { $ 모듈 = $이 -> getRequest () -> getModuleName (); 면 ($ 스트랩 = $이 -> getActionController () -> getInvokeArg ( '부트 스트랩')) { $ 설정 = $ 스트랩 -> getOptions (); 경우 (isset ($ 설정 [$ 모듈] [ '자원'] [ '레이아웃'] [ 'layoutPath'])) { $ layoutPath = 설정 $ [$ 모듈] [ '자원'] [ '레이아웃'] [ 'layoutPath']; $이 -> getActionController () -> getHelper ( '레이아웃') -> setLayoutPath ($ layoutPath); } } } }
- 그리고 마지막으로 작업 도우미를 boostrap :
... / ** * 당 모듈 기반으로 레이아웃 스크립트를 설정합니다 * / 보호 기능 _initLayoutHelper () { $이 -> 부트 스트랩 ( 'frontController'); $ 레이아웃 = Zend_Controller_Action_HelperBroker : addHelper ( 새로운 Pro_Controller_Action_Helper_SetLayoutPath ()); } ...
















































