听说你也想学 Composer----版本号

上一篇文章简单地介绍了composer的安装,镜像切换,以及简单的使用方式。本文主要是和大家聊聊composer中的版本号。

版本号介绍

版本号的设置建议遵循语义化版本的规范。简单来说就是:

  • 主版本号(大版本):当你做了不兼容API的修改

  • 次版本号(小版本):当你做了向下兼容的功能性新增

  • 修订号(补丁版):当你做了向下兼容的问题修复

讲人话就是如果你的依赖包完全重构了,比如方法名、类名更改了,函数的调用方式也做了调整等等,那么这时候势必会造成用户无法按照原来的方式使用依赖包。这种情况就需要把主版本号加一:

1.2.3 ---> 2.0.0

如果你的依赖包只是新增加了一些类或者方法,原来的使用方式没有发生变化,用户升级之后不会造成兼容性问题。这种情况只需要把次版本号加一:

2.3.4 --> 2.4.0

如果你只是对依赖包做了bug的修复。这种情况仅仅需要把修订号加一:

2.5.6 --> 2.5.7

细心的小伙伴可能已经发现如果前一位加一,后一位会直接清零

版本限制

安装依赖的时候我们往往要选择合适的版本进行安装,常见的版本限制方式:

  • 直接指定:xx/xx:”2.1.0”

  • 范围指定:xx/xx:’>1.2,<1.4|>1.0’

  • 通配符:xx/xx:’1.2.*‘

注: “,”表示逻辑AND,”|”表示逻辑OR,并且AND的优先级高于OR

除了上面的三种常见版本限制方式外,还有波浪符(~)和脱字符(^)两种。波浪符比较好理解,它其实和上面的通配符差不多,指版本号只能改变最末尾那一段

~1.2  等价于 >=1.2,<2.0

脱字符(^)

脱字符在版本限制里算最不好理解的了。人话一点的解释就是:尽量使用最新版本,但是保证不出现兼容性问题。根据我们上面提到的语义化版本规范,可以进一步得出,除了主版本以外,次版本和修订版可以随意变动:

^1.2.5 等价于 >=1.2.5,<2.0.0

当然这里还有一个注意点:零开头的版本号比较特殊:

^0.4 等价于 >=0.4.0,<0.5.0

因为语义化版本规范规定零开头的版本是非稳定版本,而非稳定版是允许次版本不向下兼容的。所以需要注意下面的使用方式,可能会导致升级之后出现不兼容的情况:

~0.5 等价于 >=0.5.0,<1.0.0

总结

本文主要介绍了版本号的语义化表达,特别需要注意波浪符(~)和脱字符(^),以及零开头的版本号。有什么问题, 可以留言哦。

本作品采用《CC 协议》,转载必须注明作者和本文链接
三斤
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 1

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!