2016-08-04 2 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) * [몇 가지 파급 효과] (https://github.com/joomla/joomla-cms/pull/11360)를 일으킨 BC 휴식을 소개했습니다. PHP 개발자는 7.1 용으로 다시 도입 될 예정이지만 [7.0.10] (https://bugs.php.net/bug.php?id=72698) 7.0 버전으로 되돌릴 예정입니다. – Simba

+0

@Simba 그 의도는 아니었지만. 그것은 일반적으로 일어나서는 안됩니다. – apokryfos

답변

4

많이 Semantic Versioning를 사용합니다. 예를 들어 X.Y.Z의 버전 번호에서 X은 "주요"버전이고 Y은 "부 버전"이며 Z은 "패치"버전입니다. semver 사양 단위로 다음과 같은 소프트웨어 :

이 가 는
가 가 호환되지 않는 API 변경을

주 버전,

이 가 당신은 이전 버전과 호환되는 방식으로 기능을 추가

MINOR 버전 및

패치 버전이 이전 버전 확인 호환되는 버그 수정.

PHP는 그러나 semver 사양을 따르지 않습니다!

큰 PHP 프로젝트의로드에서는 사용하지만 언어 자체는 아닙니다. PHP 언어 자체의 경우 "주요"버전 번호뿐만 아니라 "부 버전"버전 번호도 변경 될 수 있습니다. 일반적으로 버그 픽스와 다른 하위 호환 가능 변경 사항에 관심이 있습니다. 그러나 우리는 소프트웨어를 깨고 당신을 소방관으로 만드는 변화에 거의 관심이 없습니다.

우주에서 가장 프로젝트 아웃, 당신이 redis:3 같은 주요 버전을 사용하는 버전을 선언하고 새로운 마이너 패치 버전을 수용 할 것이기 때문에 나는 semver 사양에 대해 말하고 예 (실제로 Redis는 정확히을 사용하지 않으므로 나쁜 예입니다. 그러나 닫음). 하지만 여기서 PHP를 사용하는 경우에는 변경이없는 변경 사항 만 찾고 있으므로 좀 더 구체적으로 설명해야합니다.

따라서 php:7.0-fpm이 아마도 당신이 찾고있는 것일 것입니다.

관련 문제