上一篇简单介绍了composer的安装、镜像切换和简单使用。这篇文章主要是跟大家聊聊composer中的版本号。版本号介绍建议设置版本号遵循语义版本规范。简单来说:大版本号(majorversion):当你做了不兼容API的修改时已经解决了向后兼容的问题。也就是说,如果你的依赖包被彻底重构了,比如方法名和类名都改了,函数的调用方式也调整了等等,那么这个时候必然会导致用户依赖包无法在原来的方式。这种情况需要在主版本号上加一个:1.2.3--->2.0.0如果你的依赖包只是增加了一些新的类或者方法,原来的使用方法没有改变,就不会有用户升级后的问题。兼容性问题。在这种情况下,如果只修复依赖包的bug,只需要在次版本号上加一:2.3.4-->2.4.0。这种情况下,只需要在修订号上加一: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除了以上三种常见的版本限制方式外,还有波浪字符(~)和脱字符(^)。波浪字符更容易理解。它其实类似于上面的通配符,表示版本号只能改变最后一段:~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总结本文主要介绍版本号的语义表达,特别要注意波浪字符(~)和脱字符(^),以及从零开始的版本号。如果您有任何问题,可以留言。最后欢迎大家关注我的公众号:
