第1期-composer的版本約束備忘
1 基本約束
1.1 具體版本號
1.0.2n
如果其他依賴需要當前package的不同版本,composer的版本解析器就必然會解析失敗,並停止安裝或更新流程。
1.2 範圍指定
有效的操作符,包含:
>,>=,<,<=,!=n
邏輯與使用「 」(一個空格)或「,」英文逗號表示,邏輯或使用||表示,並且邏輯與的優先順序高於邏輯或的優先順序。
>=1.0n>=1.0 <2.0n>=1.0 <1.1 || >=1.2n
1.3 使用連字元的範圍指定
使用閉區間表示。比較簡單,若不理解請看英文原文。
1.4 通配符指定
比較簡單,若不理解請看英文原文。
2 下一組重要的發行操作符
2.1 「~」波浪符,例如:~1.2,表示>=1.2 <=2.0.0,~1.2.3,表示>=1.2.3 <1.3,這個操作符用來表示一個軟體或者一個庫的向後兼容性是非常好的,聰明的你可能發現了,~M.N.K表示>=M.N.K,<M.(N+1),也就是小數點倒數第2位。
2.2 "^"插入符,這個操作符跟語義操作符非常類似。例如:^1.2,表示 >=1.2 <2.0,^1.2.3,表示>=1.2.3 <2.0.0,聰明的你可能發現了,區間右側的部分體現在從左至右第一個非零的數+1的變化。
3 版本穩定性
在composer中,如果你沒有顯式定義package的穩定性,composer將隱含地使用-stable,-dev後綴來表示對應package的穩定性。
例如:
版本約束 潛在含義n1.2.3t=1.2.3.0-stablen>1.2t>1.2.0.0-stablen>=1.2t>=1.2.0.0-devn>=1.2-stablet>=1.2.0.0-stablen<1.3t<1.3.0.0-devn<=1.3t<=1.3.0.0-stablen1 - 2t>=1.0.0.0-dev <3.0.0.0-devn~1.3t>=1.3.0.0-dev <2.0.0.0-devn1.4.*t>=1.4.0.0-dev <1.5.0.0-devn
4 測試版本約束
你可以使用Packagist Semver Checker來測試約束。填入package的名字,它會自動填充composer即將添加到你的composer.json的默認版本約束。你還可以調整版本約束,這個工具會幫你高亮所有匹配的發行包(release package)。
參考資料:
1.語義化的版本:Semantic Versioning 2.0.0
推薦閱讀:
※Github項目精選|PHP實現網頁視頻聊天
※PHP黑系列之二:PHP 為什麼函數命名是如此不一致?
TAG:PHP |