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