2016-08-04 9 views
1

私はDocker Composeファイルを設定しており、PHPバージョンを指定する必要があります。私はちょうどphp:7-fpmを定義すると仮定します。 PHPバージョン7.1が互換性を失わないことを確認できますか?PHP - バージョンをどれほど正確に定義する必要がありますか

次の選択のうち、バージョンを定義する最も良い方法は何ですか?その理由は何ですか?

php 7 
php 7.0 
php 7.0.9 
+3

おそらくPHP 7.0が必要です。 PHP 7はあまりにも多く、PHP 7.0.9はあまりにも制限があります(マイナーリビジョンでは、同じメジャーリビジョンでの後方互換性が損なわれないので) – apokryfos

+2

@apokryfos - 特定のバージョン(PHP 7.0.9など) * [いくつかの問題を引き起こした] BCブレークを導入しました(https://github.com/joomla/joomla-cms/pull/11360)。 PHP開発者は[7.0.10](https://bugs.php.net/bug.php?id=72698)に戻っているようですが、7.1のために再導入されます。 – Simba

+0

@Simbaそれは目的ではなかった。それは一般的に起こるべきではありません。 – apokryfos

答えて

4

多くの大きなソフトウェアプロジェクトでは、Semantic Versioningが使用されています。例えば、X.Y.Zのバージョン番号では、Xは「メジャー」バージョン、Yは「マイナー」バージョン、Zは「パッチ」バージョンです。 semver仕様刻み、次のソフトウェア:あなたは後方作るときは、後方互換性のある方法で機能を追加し、

パッチバージョンするときに互換性のないAPIの変更、

MINORバージョンを作る

メジャーバージョン互換性のあるバグ修正。

PHPは、セーバー仕様に従っていません!

大規模なPHPプロジェクトの負荷がそれを使用しますが、言語そのものは使用しません。 PHP言語そのものの場合、「メジャー」バージョン番号だけでなく、「マイナー」バージョン番号に変更が加えられている可能性があります。通常、私たちはバグフィックスと、おそらく他の後方互換性のある変更に興味があります。しかし、私たちはソフトウェアを壊して消防士になるような変更にはほとんど関心がありません。

宇宙で最もプロジェクト実施のために、あなたがのためにredis:3のように、メジャーバージョンを使用するようにバージョンを宣言した後、新しいマイナーおよびパッチのバージョンを受け入れることになるでしょうので、私は、semver仕様についてあなたの言っています例(実際にはRedisは一種の悪い例ですが、は正確にを使用していませんが、closeです)。しかし、ここでは特にPHPを使用していますが、変更を加えるだけの変更を探しているので、より具体的にする必要があります。

したがって、php:7.0-fpmはおそらくあなたが探しているものです。

関連する問題