2013-12-19 83 views
5

我有以下供應商目錄結構的PHP項目:Zend框架的作曲家自動加載

vendor 
    zendframework 
    zendframework 
     library 
     Zend 
     ... 
     ... 
     Cache 
     ... 
     ... 

當我把以下行autoload_namespaces.php everythins是確定的:

'Zend\\Cache' => $vendorDir . '/zendframework/zendframework/library/', 

,但此行沒有按「T工作:

'Zend\\Cache' => $vendorDir . '/zendframework/zendframework/library/Zend/Cache/', 

的錯誤是:

Fatal error: Class 'Zend\Cache\Storage\Adapter\MemcachedOptions' not found 

我的代碼有什麼問題?我怎樣才能從zend框架加載緩存模塊?如果我指定整個庫文件夾,它爲什麼會起作用?

+1

你到底想幹什麼?類按需加載,您的應用程序將僅加載使用的類。 'autoload_namespaces.php'文件是Composer自動生成的,你不應該編輯它。 –

+0

我嘗試使用MemcachedOptions()類:'$ options = new \ Zend \ Cache \ Storage \ Adapter \ MemcachedOptions();'並且此行出現錯誤。 – Phantom

+1

假設你使用Composer安裝了Zend Framework,在'autoload_namespaces.php'中應該有'Zend \\'條目。這就是你需要的一切,不要改變別的。如果不存在,請使用Composer重新安裝ZF。 –

回答

7

Zend Framework 1.x可以與作曲家一起安裝。

地址: 「規定」:{ 「zendframework/zendframework1」: 「1 *」 },

您composer.json 並做作曲家命令行安裝。 這將下載zend框架並將庫設置爲自動加載以及作曲者管理的其他所有內容。

爲了讓您的Zend Framework的應用程序使用作曲家自動加載你需要編輯您的應用程序的index.php文件,包括作曲家自動加載像這樣:

require_once realpath(APPLICATION_PATH . '/../vendor/autoload.php'); 
+0

您是否知道如何下載ZF1的某些組件,而無需使用作曲家下載所有內容? – GreeKatrina

+0

這些軟件包都帶有前綴zf1/something。這裏有一個列表:https://packagist.org/search/?q=zf1%2F – txyoji

+0

謝謝。不幸的是,我需要1.10.4版本,他們不太支持。 – GreeKatrina