2010-06-23 2 views
0

안녕 얘들 아, 이건 스택 오버플로에 대한 나의 첫 번째 질문이다. 나는이 웹 사이트가 나를 많이 도왔다는 것을 알았고 그래서 나는 또한 그 기회를 주었다.젠드 프레임 워크 : 다른 디렉토리에서 모듈로드

저는 현재 공통 모듈 디렉토리에서 모듈을 상속해야하는 여러 Zend Framework 응용 프로그램을 개발 중입니다.

$moduleLoader = new Zend_Application_Module_Autoloader(
    array('namespace' => 'Prefix', 'basePath' => path_to_application1_application_modules_modulename) 
); 
$autoloader->pushAutoloader($moduleLoader); 
: 지금과 같이 응용 프로그램 2의 부트 스트랩 매 모듈 자동 로딩 수동 시도한 들어

/application1 
    /application 
     /modules 
      /module1 
      /module2 
      /module3 
      /... 

/application2 
    /application 

: 사용되는 파일 구조는 종래의 방법 (응용 구조를 보호하기 위해 실제 이름 및 참조를 생략)이다

이 방법이 효과적이지만, 이것은 매우 지루한 작업이된다는 것을 알 수 있습니다. 이제는 FrontController에서 공통 모듈 디렉토리를 다음과 같이 설정해 보았습니다.

$frontController = Zend_Controller_Front::getInstance(); 
$frontController->addModuleDirectory(path_to_application1_application_modules); 

그러나 이것은 어떤 모듈도 부트 스트랩하지 않는 것처럼 보입니다. 중요한 것을 잊어 버렸나요? 귀하의 도움을 많이 주시면 감사하겠습니다!

답변

0

config.ini 경로에서 구성 resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"을 사용하고 자동 공급기 만 사용할 수 있습니다.

나를 위해 작동합니다. config.ini에서 resources.frontController.moduleDirectory의 경로를 변경하여 다른 응용 프로그램의 모듈을 사용했습니다.

resources.frontController.moduleDirectory = APPLICATION_PATH "/../application1/application/modules"

LE를 넣어해야 응용 프로그램 2 config.ini 파일에 구성에 그것을 시도하십시오 : 당신이 모듈은 moduleDirectory와 줄 끝에서 config.ini 파일resources.modules[] = ""에 추가 부트 스트랩 원하는 합니다. 직접 시도했는데이 모듈이 없으면 다른 모듈은 임의 모듈을 입력 할 때 부트 스트랩되지 않습니다.

+0

어쨌든 나는 모듈을 부트 스트랩하지 않는다. 모듈 부트 스트랩이 호출되었음을 알기 위해 디버깅 할 때 나타나지 않습니다. 나는 아직도 단서가있다 ... –

+0

'later edit' 후에 위의 줄을 추가한다 :) –

+0

그 중 아무 것도 영향을 미치지 않는 것 같다. "오토로더를 사용하십시오." 내가 어떻게 사용할 것을 제안하겠습니까? 새 모듈 오토로더 객체를 작성하여 오토로더에 추가하면됩니까? 내가 질문에 설명했던 것처럼 기본적으로. –

0

모듈을 부트 스트랩 할 때 Zend_Application_Module_Bootstrap로 사용하고 있습니다. 그것은 분명하지만 파일은 또한 루트 모듈 폴더에 있어야합니다.