找不到类'My_Form_Login'(Zend Framework)......为什么?

时间:2012-02-28 16:34:55

标签: php zend-framework

我知道还有其他StackOverflow问题与我的问题重叠,但我没有在其中找到答案,所以我将在这里给出一些细节,希望有人可以提供帮助。

在我的ZF 1.11.10项目中,我在

中定义了类My_Form_Login()
/application/forms/Login.php

我的application.ini有:

appnamespace = My

当我尝试从我的一个控制器创建一个新的My_Form_Login()时,我从PHP中发现了一个未找到类的致命错误。

现在,据我所知,我的Bootstrap中不需要以下内容,因为它已经是默认的资源类型:

$oResourceLoader->addResourceType('forms', "forms/", 'Form');

甚至

$oResourceLoader->addResourceType('forms', "forms/", 'My_Form');

但即使我确实添加了这个,我也会遇到致命的错误。求救!

3 个答案:

答案 0 :(得分:1)

我昨天遇到了完全相同的问题,当谈到Zend时我是新手,所以我不确定我的回答是否正确。

对于我来说,我通过初始化我以前没有的自动加载器在index.php文件中修复了这个问题;

http://framework.zend.com/manual/en/zend.loader.autoloader.html

答案 1 :(得分:1)

将表单类放在项目的库文件夹(或包含路径中的任何位置)中(保留My_Form_Login类名称)

/application/...
/library/My/Form/Login.php
...
/public

在application.ini中添加

[production]
...
autoloaderNamespaces.my = "My_"
...

答案 2 :(得分:1)

事实证明,由于我的application.ini中缺少这些条目而发生错误:

bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

即使我的Bootstrap为空,这些行也可以解决问题:大概是通过包含上述内容,这意味着运行Boostraps父构造函数,这似乎是将资源加载器付诸行动所必需的。