我有一个auth
模块,并希望在模块的Login
文件夹中保留forms
表单。我有一个名为Auth_Form_Login
的类,我在auth
的{{1}}控制器中实例化的代码是:
Index
然而,Zend抱怨它无法找到班级。我做错了什么?
修改
我的目录结构如下:
$loginForm = new Auth_Form_Login($_POST);
此外,模块设置正确:
application
configs
layouts
modules
auth
controllers
models
views
forms <--- This is what I want to autoload from
default
controllers
models
views
library
public
答案 0 :(得分:1)
您正在表单初始化中做正确的事情。自动加载器根本不知道在哪里找到它所以你需要正确设置zend自动加载器。
我不确定您是如何创建基于模块的结构的。我使用配置所有内容的cli tool。
所以在我的application.ini文件中我有:
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules = ''
resources.frontController.params.prefixDefaultModule = "1"
在我的Boostrap.php中:
$modelLoader = new Zend_Application_Module_Autoloader (
array ('namespace' => '', 'basePath'
=> APPLICATION_PATH .
'/modules/default' ) );
您还可以设置autoloader manually by registering your resources:
$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
'basePath' => 'path/to/my/directory',
'namespace' => 'Auth',
'resourceType' => array(
'form' => array(
'path' => 'forms/'
'namespace' => 'Form'
)
//...your code
)
)
);
答案 1 :(得分:1)
好像你缺少Auth
模块的模块引导程序:
application
modules
auth
Bootstrap.php
这可能只包含这一行 - 只是为了使自动加载神奇工作:
class Auth_Bootstrap extends Zend_Application_Module_Bootstrap {}