Composer PHP 요구 사항 건너 뛰기


117

우리는 PHPCI와 작곡가를 사용하고 있습니다. PHPCI를 실행하는 서버는 PHP 5.3에 있습니다.

프로젝트의 경우 composer를 사용하여 Facebook PHP SDK를 추가했습니다. PHP 5.4가 필요합니다. Composer는 PHPCI에 의해 트리거되고 실행됩니다. 그러나 CI 서버가 방금 PHP 5.3 작성기가 오류 메시지와 함께 실패했기 때문에 :

facebook/php-sdk-v4 4.0.9 requires php >=5.4.0 -> no matching package found.

이것은 물론 PHPCI에서 내 빌드를 실패하게했습니다.

이 요구 사항을 건너 뛸 수 있습니까? 아마도 composer.json에 옵션을 추가하여? 아니면 composer.phar 호출에 대한 매개 변수?

답변:


284

옵션을 찾았습니다.

composer install --ignore-platform-reqs

플랫폼 요구 사항 (php 및 ext- 패키지)을 무시합니다.


편집 : 이것으로 플랫폼 검사를 건너 뛸 수 있지만 Composer는 주어진 PHP 버전을 기반으로 패키지를 가져옵니다. 따라서 depedency 해결 중에 PHP 버전을 에뮬레이트하기 위해 composer가 필요한 경우 composer.json에서 다음을 사용할 수 있습니다 (그리고 그래야합니다!).

{
    "config": {
       "platform": {
           "php": "5.6.6"
       }
    }
}

https://getcomposer.org/doc/06-config.md#platform


개인 저장소를 어떻게 무시할 수 있습니까? 일부 패키지에는 개인 저장소가 필요합니다.
dungphanxuan

대박. PHP CLI가 아직 버전 변경을 반영하지 않을 때 유용합니다.
giovannipds

Composer 2에는 사용할 수있는 새로운 명령이 있습니다. php.watch/articles/composer-ignore-platform-req
Armin

3

많은 명령의 경우 " --ignore-platform-reqs" 매개 변수를 사용하여 작성기에게 PHP 버전 확인을 우회하도록 지시 할 수 있습니다 .

composer COMMAND --ignore-platform-reqs

이것은 PHP 버전 사양을 우회합니다.

소프트웨어가 작동하거나 작동하지 않을 수 있습니다. php 버전 사양은 코드의 어딘가에 최소한 지정된 PHP 버전이 필요하므로 해당 코드를 사용하면 소프트웨어가 중단됩니다.


--ignore-platform-reqs답변에서 알 수 있듯이 모든 명령을 사용할 수있는 것은 아닙니다.
Armin

-11

특정 버전의 PHP가 필요한 경우 하위 버전의 PHP에서 실행되지 않습니다. PHP 요구 사항을 우회 할 때에도 오류가 발생합니다.

Btw, PHP 5.3은 더 이상 유지되지 않으므로 PHPCI 서버를 업데이트하는 것이 좋습니다.


3
먼저 PHP 요구 사항을 우회하는 방법을 알고 싶습니다.
Armin

당신은 당신이 코드가 낮은 PHP 버전에서 작동하지 않습니다하지 않으므로 수 없습니다
WOUTER J

3
그럴 것입니다. CI 서버에만 낮은 PHP 버전이 있습니다. Facebook SDK가 포함 된 서버는 PHP 5.4에서 실행됩니다. 모든 것을 배포 가능한 zip 파일로 압축하는 ci 서버에 관한 것입니다.
Armin

PHP 5.3은 핵심 PHP 개발자가 더 이상 유지 관리하지 않지만 일부 Linux 버전은 여전히이를 지원하며 당분간 수행 할 것입니다. Ubuntu 12.04 LTS는 5.3과 함께 제공되며 2017 년 4 월까지 지원됩니다 ( wiki.ubuntu.com/LTS ). 14.04로 이동하는 것이 가장 좋은 업그레이드 경로이지만 수정하는 데 많은 작업이 필요한 주요 변경 사항이 있습니다 (Apache 2.4, php-fpm 등). 따라서 많은 인터넷이 여전히 5.3.x를 사용하고 있습니다.
Andrew McCombe 2015 년

불행히도 잘 지원되는 패키지의 99 %는 적절한 요구 사항이 없습니다. 개발자가 무엇을 사용하고 있는지에 대한 지표입니다.
mschuett
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.