版本號規則
主版本號.次版本號.修訂號
^ 表示除主版本號,其他段都可以變
"php": "^7.3|^8.0" 表示 7.3 <= 版本號 < 8.0 或 8.0 <= 版本號 < 9.0
"php": ">=7.3,<8.0" 表示 7.3 <= 版本號 < 8.0
~ 下一個主要版本段
"mockery/mockery": "~1.3" 表示 1.3 <= 版本號 < 2.0
"mockery/mockery": "~1.3.2" 表示 1.3.2 <= 版本號 < 1.4.0
* 表示通配當前版本段
"mockery/mockery": "~1.*" 表示 1.0 <= 版本號 < 2.0
"mockery/mockery": "~1.3.*" 表示 1.3.0 <= 版本號 < 1.4.0
明確的版本號
"mockery/mockery": "1.3.2" 表示 1.3.2
分支版本號
"mockery/mockery": "dev-master" 表示 master 分支
"mockery/mockery": "dev-develop" 表示 develop 分支
install update require
install
install優先讀取compose.lock中的包安裝版本信息並一致安裝,這也是為何建議將composer.lock納入代碼版本管理中,以便使用者安裝的依賴庫與開發者完全一致,避免composer.json中一些範圍類的包版本號,導致後期安裝新版本,帶來的兼容問題。- 如果
compose.lock不存在,則讀取composer.json執行依賴安裝,並將版本快照寫入composer.lock。 - 如果依賴在
composer.json中 且 不在composer.lock中,則執行install會單獨安裝此包。等同於require。
update
- 全局更新依賴(不建議)
composer update - 指定包名更新(但無法在命令中傳入包版本)
composer update foo/bar。可在composer.json中設置好foo/bar的版本號,再執行命令。
require
- 引入新的包/升級至最新包
composer require foo/bar - 指定包的版本
composer require foo/bar:~2.0.0 - 降級包的版本
composer require foo/bar:~1.0.0