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

cas*_*t01 3 php zend-framework autoload

我正在处理一个 Zend PHP 项目,我正在尝试将代码分离到一个自定义库中,例如“自定义”。目前这主要包括一些自定义表单。

我的文件夹结构如下。

/project root
 /Library
  /Custom
    /Forms
      /Account
        /Login.php
      Base.php
  /Zend
  ...
Run Code Online (Sandbox Code Playgroud)

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

class Custom_Form_Account_Login extends Custom_Form_Base
{

}

class Custom_Form_Base extends Zend_Form
{

}
Run Code Online (Sandbox Code Playgroud)

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

autoloaderNamespaces[] = "Custom_"
Run Code Online (Sandbox Code Playgroud)

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

$form    = new Custom_Form_Account_Login();
Run Code Online (Sandbox Code Playgroud)

但是,当我加载页面时,我收到一条错误消息,告诉我无法找到 Custom_Form_Account_Login。显示了包含路径,我可以看到“/project root/Library”在那里,所以我对为什么找不到该类感到有些困惑。

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

我尝试过的其他行包括:

autoloadernamespaces[] = "Custom_" //All lowercase
autoloaderNamespaces[] = "Custom"  //Without the underscore
autoloaderNamespaces.custom = "Custom_"
autoloaderNamespaces.0 = "Custom_"
Run Code Online (Sandbox Code Playgroud)

如前所述,我使用的是 Zend 1.12。理想情况下,我想在 .ini 文件中配置它。

Dav*_*aub 5

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