簡體   English   中英

下載php composer依賴項的更好方法

[英]Better approach to download php composer dependencies

我一直在JAVA中使用maven並開始使用PHP Maven,最近我改用了作曲家。

我的項目是使用Zend Framework 2,團隊只檢查應用程序代碼而不是供應商目錄中的任何內容。 這樣做是為了避免沖突,而不是讓SVN下的庫。

現在,每當開發人員設置他或她的新環境時,我們都會發現,作曲家會從互聯網中提取依賴關系。 這需要相當長的時間。

有沒有更好的想法/方法來加快速度或以不同的方式處理項目以避免這個問題?

maven使用可以緩存下載的maven代理服務器,並且可以再次在網絡中使用,但我們是否有任何解決方案來處理這樣的問題?

作曲家是一個非常年輕的項目,因此可能會缺少一些東西,例如Maven可以毫不費力地合作。

您可以按照編輯器文檔中的描述設置自己的Packagist服務器。 我相信packagist有一些緩存選項,可用於在packagist服務器上存儲包。

您還可以做的是分叉您的依賴項並將它們推送到公司擁有的私有存儲庫。 在您的composer.json中,您現在只能使用此依賴項,從而加快克隆速度。 當然,這需要你保持所有不同的依賴關系(雖然這可以通過腳本和cronjob完成,從github倉庫中提取數據並將其推送到你公司擁有的)。

我也相信作曲家有一些代理選項,但我不認為這些是為了緩存依賴。

最后的選擇是開發這樣的東西,作為作曲家/包裝者的一部分或作為獨立的。

在PHP中,有一個現有選項可以在本地運行像repo這樣的作曲家,它在這里叫做Satis(它實際上由Composer提供): https//github.com/composer/satis

因此,您可以在服務器上本地運行它,並指向您的編寫器將其用作默認的編寫器存儲庫,並且Satis確保所有已安裝的軟件包和不同版本作為ZIP文件緩存在磁盤上,因此與始終從以下位置下載它們相比,可以更快地檢索它們互聯網。

你可以這樣做:

{
    "repositories": [ 
        { 
            "type": "composer", 
            "url": "http://satis.example.org/" 
        }
    ],
    "require": {
        "company/package": "1.2.0",
        "company/package2": "1.5.2",
        "company/package3": "dev-master"
    }
}

這也允許您擁有私有包和庫而不在GitHub上公開它們。

另一個巨大的優勢是當GitHub出於任何原因而無法正常部署時,因為您的所有依賴項都在本地緩存。 這是假設您尚未向該版本添加新的,不存在的包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM