下面由composer教程欄目給大家介紹關(guān)于 composer 易忽略的知識(shí),希望對(duì)需要的朋友有所幫助!
1.composer 版本號(hào) ~ ^ *
(1) 包版本:*
{ "require":?{ ????"monolog/monolog":?"1.0.*" } }
1.0.* 這表示任何從 1.0 開始的開發(fā)分支,它將會(huì)匹配 1.0.0、1.0.2 或者 1.0.20。
(2) 包版本:~
~1.2 相當(dāng)于 >=1.2,
~1.2 只意味著 .2 部分可以改變,但是 1. 部分是固定的。
(3) 包版本:^
^1.2.3 相當(dāng)于>=1.2.3
2.composer install
(1)如果已經(jīng)存在composer.lock時(shí),讀取composer.lock下載依賴。
(2)如果沒有 composer.lock 文件,讀取 composer.json 文件,處理依賴關(guān)系,并把其安裝到 vendor 目錄下。
也就是說本地有一份composer.lock,你就可以保證無論過去了多久,你都能拉到相同的依賴。
所以應(yīng)該把 composer.lock 放到 git 版本庫中,這樣可以確保你項(xiàng)目中的每一個(gè)人、每一臺(tái)電腦,不管什么系統(tǒng),都能拉取到一模一樣的依賴,以減少潛在的依賴對(duì)部署的影響。
3.composer update
讀取composer.json中指定的依賴,然后拉取依賴放入vendor目錄下,并且把所有拉取依賴的確切的版本號(hào)寫入composer.lock文件中。
(1)那么什么時(shí)候需要使用composer update呢?
比如某擴(kuò)展發(fā)布的新版本有我們需要的新功能時(shí),這時(shí)我們需要更新該擴(kuò)展,我們update時(shí)指定具體更新的擴(kuò)展名,如composer update package 而不要直接composer update。因?yàn)橹苯觕omposer update后,所有的擴(kuò)展都會(huì)更新,風(fēng)險(xiǎn)很大。
4.總結(jié):
(1)composer update 根據(jù)composer.json來更新的,并把擴(kuò)展的版本號(hào)寫入到composer.lock中。
(2)composer install 根據(jù)composer.lock來更新的
(3)開發(fā)過程中 少用 composer update ,應(yīng)該用 composer install
(4)如果新加一個(gè)包,可以使用:composer require “包名:版本號(hào)”
更多composer相關(guān)技術(shù)文章,請(qǐng)?jiān)L問composer欄目:composer