composer 第8章 版本约束 composer 第8章 版本约束

2023-02-28

我们可以指 定要下载的包的版本。例如我们想要下载版本 1.19 的 monolog 。我们可以通过 composer.json 文件:

{
    "require": {
        "monolog/monolog": "1.19"
    }
}

然后运行 install 命令,或者通过 require 命令达到目的:composer require monolog/monolog:1.19 或者 composer require monolog/monolog=1.19 或者 composer require monolog/monolog 1.19

① 精确版本:可以指定具体的版本,告诉Composer只能安装这个版本。但是如果其他的依赖需要用到其他的版本,则包的安装或者更新最后会失败并终止。 例子:1.0.2

② 范围:使用比较操作 符你可以指定包的范围。这些操作符包括:>,>=,<,<=,!=。你可以定义多个范围,使用空格>=1.0 、>=1.0<2.0>=1.0<1.1>=1.2

③ 范围(使用连字符):带连字符的范围表明了包含 的版本范围,意味着肯定是有边界的。其中连字符的左边表明了 >= 的版本,而连字符的右边情况则稍微有点复杂。如果右边的版本不是完整的版本号,则会被使用通配符进行补全。例如 1.0 - 2.0 等同于 >=1.0.0<2.1(2.0相当于2.0.*),而 1.0.0="" -="" 2.1.0="">=1.0.0 <=2.1.0。

④ 通配符:可以使用通配符去定义版本。1.0.* 相当于 >=1.0<1.1。

⑤ 波浪号~:~1.2 相当于 >=1.2<2.0.0,而 1.2.3="">=1.2.3<1.3.0。对于使用 Semantic Versioning 作为版本号标准的项目来说,这种版本 约束方式很实用。例如 ~1.2 定义了最小的小版本号,然后你可以升级 2.0 以下的任何版本而不会出问题,因为按照 Semantic Versioning 的版本定义,小版本的升级不应该有兼容性的问题。简单来说,~定义了最 小的版本,并且允许版本的最后一位版本号进行升级。

需要注意的是,如果 ~ 作用在主版本号上,例如 ~1,按照上面的说法,composer 可以安装版本 1 以后的主版本,但是事实上是 ~1 会被当作 ~1.0 对 待,只能增加小版本,不能增加主版本。

⑥ 折音号^:该操作符的行为跟 Semantic Versioning 有比较大的关联,它允许升级版本到安全的版本。例如,^1.2.3 相当于>=1.2.3<2.0.0,因为在 2.0="" 1.0="" 0.3="">=0.3.0<0.4.0 对待。

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦

阅读 315