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