젠드 프레임 워크 당 모듈 기반의 설정

스티븐 로이드 Watkin 2010년 1월 1일 (금요일) 오후 10시 40분

전 구성을 덜 필요로 게시하려면했습니다 추가 답변을 작성, 참조하시기 바랍니다 - 젠드 프레임 워크를 레이아웃 모듈 기반 .

사용할 때 젠드 프레임 워크를 여러면 당신은 실행되는 확실한과의, 모듈 (잠수함을 -) 사이트 응용 프로그램에서 같은 당신 같은하지 싶지 않아 반드시 레이아웃 스크립트를 부분 각. 저는 다음 사이트 구조로 결정 :

 / 응용 프로그램 / 컨트롤러 ...  / 스크립트 / 조회 / 컨트롤러 / 레이아웃 / 모델 / 모듈 / 기본 / 스크립트 / anotherModule ...  / 스크립트 

문제는 당 모듈 기반 레이아웃 스크립트를 설정했다. 대답은 '액션 도우미를 사용하여 다가왔습니다. 당 모듈 단위로 레이아웃을 설정하는 세 단계를 포함 :

  1. 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 "/ 스크립트 / 레이아웃 / 제휴 / 모듈" 
  2. 귀하의 액션 도우미를 만들기 :
      <? 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);
    	         }
        	 }
         }
     } 
  3. 그리고 마지막으로 작업 도우미 boostrap :
      ...
         / **
          *는 당 모듈 기반 레이아웃 스크립트를 설정합니다
          * /
         보호 기능 _initLayoutHelper ()
    	 {
    	     $이 -> 부트 스트랩은 ( 'frontController');
    	     $ 레이아웃 = Zend_Controller_Action_HelperBroker : : addHelper (
    	         새로운 Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

"젠드 프레임 워크 당 모듈 기반의 설정"4 답변

  1. Behrang 말합니다 :

    - 안녕하세요 - 첫번째 주셔서 감사합니다 귀하의 입문서 도움하지만 난 마녀 파일 이름과 함께 작업 도우미를 만들 어디 있는지 말해?
    behrang

  2. 안녕 Behrang, 당신은, 내가 공간 '프로'로 내 자신의 '도서관'을 것 중 이름과 함께 작업 도우미를 만듭니다. 당신은 쉽게 클래스 'SetLayoutPath'를 부를 수 있사 당신 같은 코드가 그것을 찾을 수 있습니다 어디에 넣어 당신이 필요한 수업을 연장

  3. 샤시의 kanth 말이 써있 더군요 :

    안녕하세요, 모듈은 특정 데이터베이스 설정을 설정과 혼동 iam ... 아무 생각이 있나요?

  4. 난이 쉽게 위의 패턴을 usign 달성될 수있을 것 같은데요. 첫째,의 파일을 함께 INI 파일에서 옵션을 만듭니다 :

    moduleName.db.user = "
    moduleName.db.password = "
    moduleName2.db.user = "
    ... 등 ...

    당신이 적합 보시다시피 그런 다음 단순히 데이터베이스 연결을 생성 (Zend_Db : : 공장 () 또는 유사) 및 레지스트리에서 그것을 멀리 숨기고 또는 Zend_Db_Table를 사용하는 기본 어댑터의 경우로 설정 (Zend_Db_Table : : setDefaultAdapter를 ()).

답변을 남겨주세요













파노라마 테마로 Themocracy

6 방문자가 온라인으로 지금
4 인용, 2 봇, 0 회원
오늘 최대 방문자 : 23 4시 19분에서 세계 협정시 오전
이번 달 : 26시 2011년 7월 5일 12시 35분가 세계 협정시 오전
올해 : 130에서 28-03-2011 세계 협정시 오후 10시 40분
전체 시간 : 130시 28-03-2011 세계 협정시 오후 10시 40분