上一篇文章简单地介绍了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
总结
本文主要介绍了版本号的语义化表达,特别需要注意波浪符(~)和脱字符(^),以及零开头的版本号。有什么问题,可以留言哦。
最后欢迎大家关注我的公众号:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。