下面由composer教程欄目帶大家介紹composer教程更新項目使用vcs源 ,希望對需要的朋友有所幫助!
我們在PHP開發(fā)當(dāng)中難免會遇到這種情況,在用composer做包管理工具的時候,項目依賴的某個開源組件的部分代碼需要根據(jù)整個項目的需求進行修改,這種時候可以通過修改vendor包里面的組件源碼來實現(xiàn),然而修改vendor包容易導(dǎo)致一個問題,那就是版本不容易進行管理,如果進行composer update操作很容易就把修改過的代碼給覆蓋了。將composer的repository管理設(shè)置為vcs源可以很好地解決這個問題。
VCS全稱Version Control System,意為版本管理系統(tǒng),根據(jù)composer官方文檔,現(xiàn)在composer支持Git、Subversion、Mercurial和Fossil等版本管理系統(tǒng),其中如果使用Github的git源,Bitbucket的git和merurial源,composer是可以直接通過API獲取到zip包的,如果是其他源,則需要本地有對應(yīng)的客戶端支持。
假設(shè)有這么個場景,在開發(fā)的過程中使用了authorA的projectA包,然后我需要對包里面某個部分的代碼進行一些跟本地項目環(huán)境更加適配的更改,就可以先將projectA的項目代碼fork到自己的github目錄下,這樣就可以對項目源碼進行修改了(請遵循相應(yīng)的開源協(xié)議),然后在工程目錄的composer.json當(dāng)中只需要加入這幾行代碼:
{ "repositories": [ { "type": "vcs", "url": "https://github.com/myAcount/projectA" } ], "require": { "authorA/projectA": "~x.x" } }
將本地修改后的代碼push到自己的倉庫中,注意要打tag,然后在項目目錄下執(zhí)行composer update authorA/projectA? 就可以使用用自己倉庫做源的projectA包了。