2011-09-07 50 views
0

如果我想從一個實體或服務出現以下錯誤調用Zend的成分,它的類:加載Zend的成分

警告:要求(../庫/ \ LG \ SERVICES \ Zend_Db_Table類。 php)[function.require]:未能打開流:沒有這樣的文件或目錄在C:\ Users \ Demos \ Example \ library \ Doctrine \ Common \ ClassLoader.php on line 148

我正在嘗試使用這個: $ db = Zend_Db_Table :: getDefaultAdapter();

我覺得有某種自動加載器衝突? 該服務使用以下命名空間 命名空間LG \ Services;

我該如何使這項工作正確?

感謝

+1

聽起來像你的自動加載器要麼配置不正確,要麼你的代碼使用了命名空間,而你忘記了在ZF類名的前面加上\,但沒有進一步的信息,有點難以給出更具體的內容。 –

+0

其實我的服務確實使用名稱空間(LG \ services),你的意思是前綴ZF類與\?我是否需要爲這樣的呼叫配置特殊的自動加載器?順便說一句:我註冊一個Doctrine類加載服務/實體 – dimirc

回答

3

兩個地方這在腳本的命名空間聲明

use \Zend_Db_Table; 

或前綴用反斜槓類頂下,如

$db = \Zend_Db_Table::getDefaultAdapter(); 

兩種方法都通知的PHP Zend_Db_Table類存在於全局名稱空間中。沒有它,PHP會認爲這個類存在於當前名字空間(\LG\Services)中。

+0

謝謝你的作品。順便說一句,在這裏的文件是?我的意思是我必須把「使用\ Zend_FOO」或backlask。我已經閱讀/使用框架一個星期,但沒有發現 – dimirc

+0

@dimirc這不是特定於ZF的核心PHP。見http://www.php.net/manual/en/language.namespaces.rules.php – Phil