关于 require
Key
第一件事情(并且往往只需要做这一件事),你需要在 composer.json
文件中指定 require
key 的值。你只需要简单的告诉 Composer 你的项目需要依赖哪些包。
{
"require": {
"monolog/monolog": "1.0.*"
}
}
你可以看到, require
需要一个 包名称 (例如 monolog/monolog
) 映射到 包版本 (例如 1.0.*
) 的对象。
包版本
在前面的例子中,我们引入的 monolog 版本指定为 1.0.*
。这表示任何从 1.0
开始的开发分支,它将会匹配 1.0.0
、1.0.2
或者 1.0.20
。
版本约束可以用几个不同的方法来指定。
名称 | 实例 | 描述 |
---|---|---|
确切的版本号 | 1.0.2 |
你可以指定包的确切版本。 |
范围 | >=1.0 >=1.0,<2.0 >=1.0,<1.1|>=1.2 |
通过使用比较操作符可以指定有效的版本范围。 有效的运算符: > 、>= 、< 、<= 、!= 。你可以定义多个范围,用逗号隔开,这将被视为一个逻辑AND处理。一个管道符号 | 将作为逻辑OR处理。AND 的优先级高于 OR。 |
通配符 | 1.0.* |
你可以使用通配符* 来指定一种模式。1.0.* 与>=1.0,<1.1 是等效的。 |
赋值运算符 | ~1.2 |
这对于遵循语义化版本号的项目非常有用。~1.2 相当于>=1.2,<2.0 。想要了解更多,请阅读下一小节。 |
下一个重要版本(波浪号运算符)
~
最好用例子来解释: ~1.2
相当于 >=1.2,<2.0
,而 ~1.2.3
相当于 >=1.2.3,<1.3
。正如你所看到的这对于遵循 语义化版本号 的项目最有用。一个常见的用法是标记你所依赖的最低版本,像 ~1.2
(允许1.2以上的任何版本,但不包括2.0)。由于理论上直到2.0应该都没有向后兼容性问题,所以效果很好。你还会看到它的另一种用法,使用 ~
指定最低版本,但允许版本号的最后一位数字上升。
注意: 虽然
2.0-beta.1
严格地说是早于2.0
,但是,根据版本约束条件, 例如~1.2
却不会安装这个版本。就像前面所讲的~1.2
只意味着.2
部分可以改变,但是1.
部分是固定的。
主版本号.次版本号.修订号
^ 表示除了大版本号,其他都可以变
"php": "^7.4|^8.0",
意思是 7.4<=版本号<8.0 或者 8.0<=版本号<9.0
还没有内容
评论已关闭!