Zend 1.12中的自动加载自定义库

时间:2013-01-06 13:03:06

标签: php zend-framework autoload

我正在开发一个Zend PHP项目,我正在尝试将代码分离到自定义库中,例如“Custom”。目前这主要包括一些自定义形式。

我的文件夹结构如下。

/project root
 /Library
  /Custom
    /Forms
      /Account
        /Login.php
      Base.php
  /Zend
  ...

Login.php和Base.php具有以下命名约定:

class Custom_Form_Account_Login extends Custom_Form_Base
{

}

class Custom_Form_Base extends Zend_Form
{

}

最后,我将以下行放在application.ini文件中

autoloaderNamespaces[] = "Custom_"

然后创建表单,我在控制器中有这个...

$form    = new Custom_Form_Account_Login();

然而,当我加载页面时,我收到错误,告诉我无法找到Custom_Form_Account_Login。显示包含路径,我可以看到“/ project root / Library”在那里,所以我对为什么无法找到类感到有点困惑。

我在application.ini中尝试了许多不同的行,并且在更改后重新启动了服务器,但错误仍然存​​在。

我尝试的其他行包括:

autoloadernamespaces[] = "Custom_" //All lowercase
autoloaderNamespaces[] = "Custom"  //Without the underscore
autoloaderNamespaces.custom = "Custom_"
autoloaderNamespaces.0 = "Custom_"

如上所述我使用的是Zend 1.12。我最好在.ini文件中配置它。

1 个答案:

答案 0 :(得分:4)

您的文件夹名称为Forms(复数),但类名使用Form(单数)。在您描述的上下文中,这些必须相同。 Form(单数)可能更好,因为它反映了ZF结构。