版本约束
通过 Composer 来安装依赖包,关于依赖包的版本约束,可以使用多种不同的方式。
确切的版本号
你可以指定包的确切版本。如 monolog/monolog 1.0.2 。
范围
通过使用比较操作符可以指定有效的版本范围。
有效的运算符有 >、>=、<、<=、!= 。
你可以定义多个范围:
- 中间用逗号隔开,视为逻辑 AND 。
- 中间用管道符号 | 隔开,视为逻辑 OR 。
AND 的优先级高于 OR。
>=1.0
>=1.0,<2.0
>=1.0,<1.1|>=1.2
通配符
你可以使用通配符 * 来指定一种模式。
1.0.* 与 >=1.0,<1.1 是等效的。
波浪号运算符
波浪号运算符 ~ ,对于遵循语义化版本号的项目非常有用。
~1.2 相当于 >=1.2,<2.0
~1.2.3 相当于 >=1.2.3,<1.3
常见的用法是标记你所依赖的最低版本,像 ~1.2 (允许 1.2 以上的任何版本,但不包括下一个重要版本 2.0)。
注意: 虽然 2.0-beta.1 严格地说是早于 2.0,但是,根据版本约束条件, 例如 ~1.2 却不会安装这个版本。就像前面所讲的 ~1.2 只意味着 .2 部分可以改变,但是 1. 部分是固定的。
稳定性
默认情况下只有稳定的发行版才会被考虑在内。
如果你也想获得 RC、beta、alpha 或 dev 版本,你可以使用稳定标志。
{
"require": {
"monolog/monolog": "1.0.*@beta",
"acme/foo": "@dev"
}
}
你可以对所有的包做 最小稳定性 设置,而不用每个依赖逐一设置。
minimum-stability (root-only)
minimum-stability 定义了包的最小稳定性。默认为 stable(稳定)。
如果你依赖于一个 dev(开发版本)包,你应该明确的进行定义。
minimum-stability 会对每个包的所有版本都会进行稳定性检查,低于 minimum-stability 所设定的最低稳定性的版本,将在解决依赖关系时被忽略。对于个别包的特殊稳定性要求,可以在 require 或 require-dev 中设定。
可用的稳定性标识(按字母排序)有:dev、alpha、beta、RC、stable。
prefer-stable (root-only)
当此选项被激活时,Composer 将优先使用更稳定的包版本。
使用 "prefer-stable": true 来激活它。