標籤:

第1期-composer的版本約束備忘

本文翻譯自:Versions - 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 |