2014-02-28 100 views
-1

首先,我已經安裝並配置了php.ini的include_path中的zend framework 2。但是當我使用composer install安裝zend框架框架應用程序時,它會執行一些過程,然後再將整個zend框架2下載到'vendor'目錄(該目錄會自動在我的應用程序目錄中創建)。 請幫助我,爲什麼作曲家再次下載並安裝整個框架,爲什麼它不使用已安裝的副本?爲什麼Composer下載Zend Framework 2即使它已經下載?

回答

3

簡短的回答是,作曲家的目的是爲每個應用程序級別而不是全局安裝依賴項。因此,composer.json文件中指定的所有依賴項都將被拉入項目的供應商文件夾。即使您碰巧在系統上安裝了全局依賴項,也會發生這種情況。

+0

謝謝....,然後如何防止作曲家下載,並使其首先查看內部系統..? –

+0

據我所知,沒有辦法做到這一點。實際上,我鼓勵你不要包含全球版本,並且鏈接到作曲家下載的副本。這允許你爲不同的項目使用不同版本的zend。 –

0

作曲家不關注你的環境 - 它看着包已經指定的依賴關係。

但是,您可以控制如何滿足這些依賴關係。

因此,您將需要一種方法向作曲家證明正在滿足相關性。

例如 - 如果您使用PEAR安裝Zend,您可以告訴Composer尋找pear包而不是下載它。

例如

{ 
    "repositories": [ 
    { 
     "type": "pear", 
     "url": "http://pear2.php.net" 
    } 
    ], 
    "require": { 
     "zend/zend": "*", 
    } 
} 
+0

你自己試過了嗎?我猜想你的建議composer.json部分也會引入任何「zend/zend」意思的新版本。 Composer的接口允許拉取梨依賴關係並不是全局安裝它們,而是作爲項目的一部分在本地安裝,就像其他的一樣。 – Sven

相關問題