我是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
中的类名感谢。
答案 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();