zend框架模型创建错误


error in zend framework model creation

我刚刚开始使用zend框架。我在zend 创建了一个项目

结构

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

我的引导文件包含

 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'
    ));
}

我的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

当我在indexcontroller 中创建对象时

 $new_object = new Dbclass();

有一个错误显示

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

如果有人知道这一点,请帮帮我。

提前谢谢。

几个评论/意见:

  1. 您的方法Bootstrap::_autoload()将不会运行。Bootstrap将自动运行形式为_initXXX()的所有方法。

  2. 通常,您不会将模型放在modules/core/DB/*中。您可以将它们放在modules/core/models/*中。默认的资源自动加载器知道要在那里查找它们。

  3. 您正在指定appnamespace Application_。这意味着目录(如application/modelsapplication/servicesapplication/forms等(中的所有类都将以Application_Model_Something的形式命名,而不仅仅是以Something的形式命名。但是,由于您已经将这些类放置在核心模块中,它们的名称将类似于Core_Model_Something

  4. 如果你想使用模块,那么你应该在application/configs/application.ini 中有一个resources.modules[] =声明

  5. 通常,每个模块都有一个Bootstrap类,例如Core_Bootstrap,用于扩展Zend_Application_Module_Bootstrap。这将确保调用模块的标准资源自动加载器。

这应该会让你更接近。坦率地说,那里有很多事情在发生,所以这不太可能是一个完整的列表。重要的部分是了解系统需要知道什么才能加载不在include_path上的类(如模型、表单等(:命名空间前缀,它需要开始执行PSR-0构造的基本路径。