2012-07-23 4 views
1

양식을 모듈과 함께 사용하려고합니다. 모듈 안에 양식을 저장해야합니다. 첫째 내 filestructure에서 그래서 다음 인 IndexController 내Zend : 모듈에서 양식 사용

application/ 
    (...other directories) 
    modules/ 
     group/ 
      controllers/ 
      IndexController.php 
      (...controllers) 
      forms/ 
      Create.php 
      views/ 
      scripts/ 
       (...view scripts) 
      Bootstrap.php 

, 나는

new Group_Form_Create() 

하여 양식을 설정하기 위해 노력하고있어 및 Create.php의 클래스 코스 Group_Form_Create이다.

Fatal error: Class 'Group_Form_Create' not found in (...)\application\modules\group\controllers\IndexController.php on line 380 

클래스 Group_Bootstrap 가진 Bootstrap.php 그냥 빈 클래스 : 나는 다음과 같은 오류 메시지가 나타납니다. 사실, 저는 기본 젠드 구조를 사용하고 있지만, 어쨌든 작동하지 않습니다. 어떤 아이디어가 문제를 야기하거나 가능한 해결책이 될 수 있습니까?

답변

3

을 내 모듈 부트 스트랩 (APPLICATION_PATH/모듈/그룹/Bootstrap.php)에서 다음 코드를 사용하는 경우 :

//Loads the autoloader resources 
    $this->_moduleName = 'group'; 
    $resourceLoader = new Zend_Loader_Autoloader_Resource(array(
      'basePath' => APPLICATION_PATH ."/modules/".$this->_moduleName."/", 
      'namespace' => '', 
      'resourceTypes' => array(
        //Tells the application where to find the forms 
        'form' => array(
          'path' => 'forms/', 
          'namespace' => ucfirst($this->_moduleName).'_Form_' 
        ), 
        //Tells the application where to find the models 
        'model' => array(
          'path' => 'models/', 
          'namespace' => ucfirst($this->_moduleName).'_Model_' 
        ) 
      ) 
    )); 

다음 양식 또는 모델을 다음과 같이 호출합니다.

$frm = new Group_Form_Create(); 

모든 모듈에서 동일한 스 니펫을 사용하며 $ this -> _ moduleName; 매번.

희망이 도움이됩니다.

+0

여기에도 같은 문제가 있습니다 : 사이트는 하나의 모듈뿐만 아니라 Group_Bootstrap이 실행되지 않는 고성능 시스템이 될 것입니다. 왜 그런가? – StoryTeller

+0

기본 ini 설정 파일에서 resources.modules = ""행을 추가 했습니까? –

+0

예 예 ;-) 대단히 감사합니다! 코드의 좋은 조각 – StoryTeller

0

이상적으로는 이상없이 작동합니다.

부트 스트랩이 추가 :

protected function _initAutoload() { 

    $autoloader = new Zend_Application_Module_Autoloader(array(
     'namespace' => 'Group_', 
     'basePath' => dirname(__FILE__), 
    )); 

    Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true); 
    return $autoloader; 

을}

+0

'APPLICATION_PATH와 함께 작동합니다. '/ modules/group /''를 basePath로 사용하지만 모듈 중 하나가 아니라 주 부트 스트랩에서만 사용해야합니다. 이 아이디어를 Group_Bootstrap에서 어떻게 활용할 수 있습니까? 성능면에서 훨씬 우수 할 것입니다. Group_Bootstrap이 단지 사용되지 않았다고 가정합니다. – StoryTeller

1

모듈 부트 스트랩이 실행되지 않는 것처럼 들립니다. 이들은 당신이있는 경우에로드되는 모듈 자원에 의해 트리거됩니다

resources.modules[] = "" 

당신의 application.ini에. 존재하지 않으면 이것을 추가하십시오.

+0

그게 다, 고마워 ;-) 내 문제의 주요 지점이 뭔가 다른 경우에도 내 대답은 대답으로 생각해, 정말 나를 도와 줬어! – StoryTeller

관련 문제