Zend Framework自动加载3个模块

时间:2010-03-12 09:05:44

标签: zend-framework

我是ZF的新手,我正在使用Zend Framework 1.10编写。 这是我的应用程序目录结构。

APPLICATION_PATH`
├─configs
 ├─layouts
 └─modules
    ├─admin
    │  ├─controllers
    │  ├─forms
    │  ├─models
    │  └─views
    │      ├─filters
    │      ├─helpers
    │      └─scripts
    │          ├─authentication
    │          ├─cars
    │          └─index
    └─default
        ├─controllers
        ├─forms
        │  └─admin
        ├─models
        │  └─DbTable
        ├─plugins
        └─views
            ├─helpers
            └─scripts
                ├─about
                ├─contact
                ├─error
                ├─index
                ├─insurance
                └─used-cars

我在APPLICATION_PATH,/ default /和/ admin,

中有3个bootstrap.php文件

我使用AutoLoader加载模型和表单

// APPLICATION_PATH/Bootstrap.php
$modelLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => '', 'basePath' => APPLICATION_PATH . '/modules/default'));

上面的代码将自动在modules / default中加载所有模型和表单,现在,我在调用默认模块中的/ modules / admin / models和/ modules / admin / forms中的表单和模型时遇到问题。

解决这个问题的任何解决方案? 我应该如何命名/ modules / admin

中的类名

感谢。

3 个答案:

答案 0 :(得分:3)

每个模块都应该有一个模块引导程序。

<?php
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{
}

模块引导程序为该模块设置默认自动加载器。

对评论的回应更新:

确保您的ini已设置为Bootstrap模块

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""

然后确保每个模块都有一个bootstrap类(见上文)。

答案 1 :(得分:0)

尝试使用Zend Tool - 它会为您创建所有必要的路径和文件,是开始使用Zend的好方法。

答案 2 :(得分:0)

您需要做的就是添加另一个模块自动加载器来加载管理模块:

$adminLoader = new Zend_Application_Module_Autoloader(array(
    'namespace' => 'Admin', 'basePath' => APPLICATION_PATH . '/modules/admin'));

在原始模块auotloader之后添加它。然后,您可以通过创建它们来引用“默认”模块中的内容。

$form = new Admin_Form_TheForm();