2010-04-26 3 views
1

모듈 컨트롤러에서 내 모델 및 폼에 액세스하는 가장 좋은 방법은 무엇입니까?모듈 내의 액세스 모델 및 양식

의는 "사진"로 설명하자

/application/module/storage/models/Files.php 

에서 클래스라는 storage_Model_Files에 readAction 전화를

/application/module/storage/controllers/IndexController.php 

필요 나는이 응용 프로그램의 디렉토리 구조와 ZF 이러한 양식과 모델을 만들었어요 .sh (Zend_Tool).

나는이 파일들을 수동으로 포함시키는 여러 가지 방법에 대해 읽었습니다. 나는 게으름로드 싶어요 모든 것이 자동으로 기본 모듈로 수행됩니다. 문서에서 어떻게 찾을 수없는 것 같습니다. 이해

합니까?

나는이 :

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 

을 내 application.ini 파일에. 그래서 나는 내 컨트롤러에 잘 접근 할 수있다.

도움 주셔서 감사합니다.

답변

2

당신은 명시 적으로 모듈을 추가해야합니다. 귀하의 옵션은 다음과 같습니다

1.)

class Storage_Bootstrap extends Zend_Application_Module_Bootstrap 
{ 
} 

2. /application/module/storage/Bootstrap.php 당신의 application.ini

resources.modules.storage = "" 

이를 추가하고 파일을 생성) 만들기 귀하의 Boostrap.php에있는 방법

protected function _initAutoload() 
{ 
    $loader = Zend_Loader_Autoloader::getInstance(); 
    $autoloader = new Zend_Application_Module_Autoloader(array(
     'namespace' => 'Storage_', 
     'basePath' => APPLICATION_PATH . '/storage', 
    )); 

    return $autoloader; 
} 
+0

흥미 롭습니다. 따라서 모듈 당 한 번만 수행하면됩니다. 이것도 양식을 자동로드합니까? application.ini 항목 : resources.modules.storage = ""는 무엇을합니까? –

+0

블라디미르가 제공 한 링크를 살펴보십시오. Module Resource Autoloader에 대한 섹션이 있습니다. "Zend_Application과 함께 모듈 부트 스트랩을 사용할 때 기본적으로 Zend_Application_Module_Autoloader의 인스턴스가 각 개별 모듈마다 생성되어 모듈 리소스를 자동로드 할 수 있습니다." –

+0

BTW; 옵션 1 또는 2를 사용해야합니다. 둘 다 필요하지 않습니다. –

0
+0

"자원 자동 로더는 젠드 프레임 워크가 공동으로 운영하는 이름 공간 라이브러리 코드를 관리하기위한 것입니다 표준 지침은 있지만 클래스 이름과 디렉토리 구조 사이에는 1 : 1 매핑이 없습니다. " 그러나 클래스 이름과 디렉토리 구조간에 1 : 1 클래스 매핑이 있습니다. 이 질문을 명확하게하기 위해 제 질문을 수정하겠습니다. –