下面由composer教程欄目帶大家介紹composer 更新項(xiàng)目使用VCS源 的方法,希望對需要的朋友有所幫助!
我們在PHP開發(fā)當(dāng)中難免會遇到這種情況,在用composer做包管理工具的時(shí)候,項(xiàng)目依賴的某個開源組件的部分代碼需要根據(jù)整個項(xiàng)目的需求進(jìn)行修改,這種時(shí)候可以通過修改vendor包里面的組件源碼來實(shí)現(xiàn),然而修改vendor包容易導(dǎo)致一個問題,那就是版本不容易進(jìn)行管理,如果進(jìn)行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包,然后我需要對包里面某個部分的代碼進(jìn)行一些跟本地項(xiàng)目環(huán)境更加適配的更改,就可以先將projectA的項(xiàng)目代碼fork到自己的github目錄下,這樣就可以對項(xiàng)目源碼進(jìn)行修改了(請遵循相應(yīng)的開源協(xié)議),然后在工程目錄的composer.json當(dāng)中只需要加入這幾行代碼:
{ "repositories": [ { "type": "vcs", "url": "https://github.com/myAcount/projectA" } ], "require": { "authorA/projectA": "~x.x" } }
將本地修改后的代碼push到自己的倉庫中,注意要打tag,然后在項(xiàng)目目錄下執(zhí)行composer update authorA/projectA 就可以使用用自己倉庫做源的projectA包了。