찾다

 >  Q&A  >  본문

재작성된 제목: Composer 오류 해결: "PHP 버전이 요구 사항을 충족하지 않습니다." - PHP 업그레이드 참조

<p>PHP를 7.4에서 8.0으로 업그레이드한 후 기존 프로젝트에서 <code>composer update</code>를 실행했는데 다음 오류가 발생했습니다. </p> <인용문>
P粉162773626P粉162773626491일 전594

모든 응답(2)나는 대답할 것이다

  • P粉670838735

    P粉6708387352023-08-23 22:07:58

    PHP 버전 8을 사용하는 경우 아직 지원되지 않는 일부 플러그인으로 인해 설치 오류가 발생할 수 있습니다.

    composer install --ignore-platform-req=php 或者 composer install --ignore-platform-reqs

    이 옵션은 작곡가가 무시할 수 있는 특정 요구 사항을 설정하는 데 사용할 수 있습니다.

    회신하다
    0
  • P粉289775043

    P粉2897750432023-08-23 09:22:20

    질문

    Composer 패키지는 필요한 다른 패키지 버전 외에도 지원하는 PHP 버전을 지정할 수 있습니다.

    설치할 패키지 버전을 구문 분석할 때 Composer는 모든 제약 조건과 일치하는 버전을 찾아야 합니다.

    • composer.json
    • 에서 종속성에 대해 지정하는 버전 제약 조건
    • 각 패키지의 종속성에 대해 지정된 버전 제약 조건
    • 각 패키지에 대해 지원되는 PHP 버전

    이러한 제약 조건을 모두 만족하는 패키지가 없으면 오류가 발생합니다.

    일반적인 혼란

    PHP 버전의 버전 제약 조건은 다른 Composer 제약 조건과 동일한 규칙을 따릅니다. 따라서 ^7.0에 대한 제약 조건은 8.0을 제외한 "7.0 이상의 모든 7.x 버전"을 의미합니다.

    솔루션

    이 문제를 해결하려면 제약 조건 중 하나를 완화해야 합니다.

    1. 오류 메시지에 언급된 패키지(예: acme/some-package)를 살펴보고 Packagist(또는 구성한 사용자 정의 패키지 소스)에서 찾으세요.
    2. PHP 버전을 지원하는 새 버전이 있는지 확인하세요.
    3. 그렇지 않다면, 이를 지원하기 위해 무엇을 추가해야 하는지 알아봐야 합니다. 이는 프로젝트를 직접 확인하고, 테스트를 실행하고, 새 버전과 호환되는 것으로 표시하는 패치를 제출하는 것을 의미할 수 있습니다.
    4. (언제) 지원이 추가되면 composer.json和其他依赖的软件包不排除该新版本。例如,如果您当前依赖于acme/some-package的版本^1.0,但PHP 8.0仅从版本2.2.0开始支持,您需要将约束条件更改为^2.2 및 기타 종속 패키지가 해당 새 버전을 제외하지 않는지 확인해야 합니다. 예를 들어, 현재 ^1.0 버전
    5. 을 사용하고 있지만 PHP 8.0은 버전 2.2.0부터만 지원되는 경우 제약 조건을 ^2.2 및 애플리케이션이 여전히 호환되는지 확인하세요.

    임시 해결책

    composer.json中使用platform때로는 이전과 동일한 패키지 버전을 사용하여 애플리케이션이 올바르게 실행될 것이라고 확신할 수 있습니다. 이 경우 변수 에서 플랫폼 구성을 사용하여 다음을 수행할 수 있습니다. 아직도 이전 버전을 사용하고 있다고 가정해 보세요. 이것은 임시 해결 방법이나 테스트용으로만 사용해야 합니다.

    이는 새 PHP 버전에서 전혀 작동하지 않는 패키지를 설치할 수 있다는 의미입니다.

    예:

    으아아아 "Composer에서 PHP 기본 종속성 재정의

    "도 참조하세요. 🎜

    회신하다
    0
  • 취소회신하다