젠드 프레임 워크 당 모듈 기반의 설정
전 구성을 덜 필요로 게시하려면했습니다 추가 답변을 작성, 참조하시기 바랍니다 - 젠드 프레임 워크를 레이아웃 모듈 기반 .
사용할 때 젠드 프레임 워크를 여러면 당신은 실행되는 확실한과의, 모듈 (잠수함을 -) 사이트 응용 프로그램에서 같은 당신 같은하지 싶지 않아 반드시 레이아웃 스크립트를 부분 각. 저는 다음 사이트 구조로 결정 :
/ 응용 프로그램 / 컨트롤러 ... / 스크립트 / 조회 / 컨트롤러 / 레이아웃 / 모델 / 모듈 / 기본 / 스크립트 / 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는 / ** *는 당 모듈 기반 레이아웃 경로를 설정합니다 * * @ 작성자 로이드 Watkin <lloyd@evilprofessor.co.uk> 2010년 1월 1일 @ 이후 * * / 수업 Pro_Controller_Action_Helper_SetLayoutPath Zend_Controller_Action_Helper_Abstract가 확장 { / ** 기준 * 설정 레이아웃 경로 모듈 * / 공용 함수 preDispatch () { $ 모듈 = $이 -> getRequest () -> getModuleName (); ($ 부트 스트랩 = $이 -> getActionController ()하는 경우 -> 제품 getInvokeArg ( '부트 스트랩')) { $ config를 = $ 부트 스트랩 -> getOptions (); 경우 (isset ($ 설정 [$ 모듈] [ '자원'] [ '레이아웃'] [ 'layoutPath'])) { $ layoutPath가 = $ 설정 [$ 모듈] [ '자원'] [ '레이아웃'] [ 'layoutPath']; $이 -> getActionController () -> 제품 getHelper ( '레이아웃') -> 제품 setLayoutPath ($ layoutPath); } } } }
- 그리고 마지막으로 작업 도우미 boostrap :
... / ** *는 당 모듈 기반 레이아웃 스크립트를 설정합니다 * / 보호 기능 _initLayoutHelper () { $이 -> 부트 스트랩은 ( 'frontController'); $ 레이아웃 = Zend_Controller_Action_HelperBroker : : addHelper ( 새로운 Pro_Controller_Action_Helper_SetLayoutPath ()); } ...


















































- 안녕하세요 - 첫번째 주셔서 감사합니다 귀하의 입문서 도움하지만 난 마녀 파일 이름과 함께 작업 도우미를 만들 어디 있는지 말해?
behrang
안녕 Behrang, 당신은, 내가 공간 '프로'로 내 자신의 '도서관'을 것 중 이름과 함께 작업 도우미를 만듭니다. 당신은 쉽게 클래스 'SetLayoutPath'를 부를 수 있사 당신 같은 코드가 그것을 찾을 수 있습니다 어디에 넣어 당신이 필요한 수업을 연장
안녕하세요, 모듈은 특정 데이터베이스 설정을 설정과 혼동 iam ... 아무 생각이 있나요?
난이 쉽게 위의 패턴을 usign 달성될 수있을 것 같은데요. 첫째,의 파일을 함께 INI 파일에서 옵션을 만듭니다 :
moduleName.db.user = "
moduleName.db.password = "
moduleName2.db.user = "
... 등 ...
당신이 적합 보시다시피 그런 다음 단순히 데이터베이스 연결을 생성 (Zend_Db : : 공장 () 또는 유사) 및 레지스트리에서 그것을 멀리 숨기고 또는 Zend_Db_Table를 사용하는 기본 어댑터의 경우로 설정 (Zend_Db_Table : : setDefaultAdapter를 ()).