2013-02-26 2 views
0

저는 젠드 프레임 워크를 사용하기 시작했습니다. 내가 젠드에서 프로젝트를 생성젠드 프레임 워크 모델 생성시 오류가 발생했습니다.

구조

application 
    configs 
     application.ini 
    layouts 
    modules 
     core 
      DB 
      Dbclass.php 
      Table 
     default 
      controllers 
      views 
      forms 
    bootstrap.php 
library 
public 
index 

내 부트 스트랩 파일은 내가 인 IndexController

에 객체를 생성 할 때 내 application.ini 파일이

[production] 
phpSettings.display_startup_errors = 0 
phpSettings.display_errors = 0 
phpSettings.date.timezone = "Europe/London" 
;includePaths.library = APPLICATION_PATH "/../library" 
bootstrap.path = APPLICATION_PATH "/Bootstrap.php" 
bootstrap.class = "Bootstrap" 
appnamespace = "Application" 
;resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" 
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.frontController.moduleControllerDirectory = APPLICATION_PATH "/modules/controllers" 
resources.frontController.defaultModule = "default" 
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 

resources.frontController.params.displayExceptions = 0 

를 포함

public function _autoload(){ 

    set_include_path(
    '/application/modules/core/DB' 
    . PATH_SEPARATOR . 
    '/application/modules/core/Table' 
    . PATH_SEPARATOR . 
    get_include_path()); 
} 
public function _init(){ 

    $front = Zend_Controller_Front::getInstance(); 
    $front->setControllerDirectory(array(
    'default' => APPLICATION_PATH.'/modules/default/controllers' 
    )); 
} 

포함

$new_object = new Dbclass(); 

어느 한 알

Fatal error: Class 'Dbclass' not found in D:\xampp\htdocs\pubman\application\modules\default\controllers\IndexController.php on line 16 

경우이 저를 도와주세요 보여주는 오류가 있습니다.

미리 감사드립니다.

+0

ZF1 대신 ZF2로 시작하는 이유는 무엇입니까? – sdespont

답변

1

여러 의견/관찰 : Bootstrap::_autoload() 실행되지 않습니다

  1. 당신의 방법. 부트 스트랩은 자동으로 _initXXX() 양식의 모든 메소드를 실행합니다.

  2. 일반적으로 모델을 modules/core/DB/*에 넣지 않을 것입니다. modules/core/models/*에 넣으십시오. 기본 자원 자동 로더가이를 찾을 수 있습니다.

  3. 앱 네임 스페이스 Application_을 지정하고 있습니다. 즉, application/models, application/services, application/forms 등과 같은 디렉토리 내의 모든 클래스는 이 아닌 Application_Model_Something이라는 형식으로 지정됩니다. 하지만 핵심 모듈 안에이 클래스들을 배치했기 때문에, 그들은 Core_Model_Something과 같은 이름을 갖게 될 것입니다. Core_Bootstrap, exmaple를 들어, 이름 - - 당신이 모듈을 사용하려면

  4. , 당신은 당신의 application/configs/application.ini

  5. resources.modules[] = 선언을해야 당신은 일반적으로 각 모듈에 대한 부트 스트랩 클래스를했을 Zend_Application_Module_Bootstrap을 확장. 그러면 모듈에 대한 표준 자원 자동 로더가 호출됩니다.

이렇게하면 더 가까워 질 것입니다. 솔직히, 거기에는 많은 일들이 일어나므로 완전한 목록이 될 것 같지 않습니다. 필수적인 부분은 include_path (모델, 형식 등)에없는 클래스를로드하기 위해 시스템에서 알아야하는 내용을 이해하는 것입니다. 네임 스페이스 접두어, PSR을 수행하기 시작해야하는 기본 경로 -0 건설.

+0

+1 => 좋은 답변입니다. – sdespont