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

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

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

 php 7 php 7.0 php 7.0.9 

许多大型软件项目都使用语义版本 。 例如,在XYZ的版本号中, X是“主要”版本, Y是“次要”版本, Z是“补丁”版本。 遵循semver规范的软件增量:

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

MINOR版本,当您以向后兼容的方式添加function时

当您进行向后兼容的错误修复时,修补程序版本。

但是PHP不遵循semver规范!

大型PHP项目的负载使用它,但语言本身不。 在PHP语言本身的情况下,“小”版本号可能(而且正在)发生重大变化,而不仅仅是“主要”版本号。 通常,我们对错误修正以及可能的其他向后兼容更改感兴趣。 但是,我们几乎肯定不会对将会破坏我们的软件并将您变成消防员的变化感兴趣。

我告诉你关于semver的规范,因为对于Universe中的大多数项目,你会希望声明你的版本使用主版本,然后接受更新的次版本和补丁版本,例如redis:3 (实际上是Redis是一个不好的例子,因为它不完全使用semver,但closures)。 但是在这里特别使用PHP,因为您只是在寻找不间断的更改,所以您需要更具体。

因此, php:7.0-fpm可能是你正在寻找的。