PHP - 我应该如何精确定义版本

时间:2016-08-04 14:33:11

标签: php docker

我正在配置Docker Compose文件,我需要指定一个PHP版本。让我们假设我只定义php:7-fpm。我可以确定PHP版本7.1不会变得不兼容吗?

在以下选项中,定义版本的最佳方法是什么?为什么?

php 7
php 7.0
php 7.0.9

1 个答案:

答案 0 :(得分:4)

许多大型软件项目使用Semantic Versioning。例如,在版本号X.Y.Z中,X是" major"版本,Y是"未成年人"版本,而Z是"补丁"版。按照semver规范递增的软件:

  

进行不兼容的API更改时的MAJOR版本

     

以向后兼容的方式添加功能时的MINOR版本,

     

当您进行向后兼容的错误修复时的PATCH版本。

然而,PHP不遵循semver规范!

大量的PHP项目使用它,但语言本身却没有。在PHP语言本身的情况下," minor"可能会(并且正在)发生变化。版本号,不仅仅是" major"版本号。通常,我们对错误修正以及可能的其他向后兼容的更改感兴趣。但我们几乎肯定不会对会破坏我们软件并让你变成消防员的变化感兴趣。

我告诉你有关semver规范的信息,因为对于宇宙中的大多数项目,你需要声明你的版本使用主要版本,然后接受更新的次要版本修补程序版本,例如redis:3(实际上Redis是一个不好的例子,因为它并不完全使用semver,但是关闭)。但是这里特别是PHP,你需要更加具体,因为你只是在寻找非破坏性的变化。

因此,php:7.0-fpm可能就是您正在寻找的内容。