2
我工作Zend的PHP项目,我试图将代码中分离出来成为一个自定义库,例如“自定义”。目前这主要由一些自定义表格组成。自动加载自定义库中的Zend 1.12
我的文件夹结构如下。
/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文件中配置它。
谢谢!我认为这样可以,因为我最初在/ root文件夹/应用程序下拥有完全相同的结构,然后决定将它移出到单独的库中,并认为它会好的。我想知道为什么它在应用程序文件夹下没问题?干杯! – cast01
它在'application'文件夹中工作的原因是有一个资源自动加载器被调用,它建立了一堆前缀/路径映射。查看类“Zend_Application_Module_Autoloader”。谢谢,欢呼! –
啊现在有道理,谢谢你进一步解释:) – cast01