본문 바로가기
BackEnd

Composer "continue 2" Error 해결 방법

by E_van 2020. 10. 27.

PHP를 7.3 버전으로 업그레이드한 후, Composer 사용 시 아래와 같은 오류를 만날 수 있습니다:

continue targeting switch is equivalent to break. Did you mean to use continue 2?


이 오류는 PHP 7.3 이상에서 continue 키워드의 동작이 변경되었기 때문에 발생합니다.
특히, 오래된 Composer 버전을 사용 중이라면 해당 오류가 발생할 가능성이 높습니다.

---
1. 해결 방법

1.1 Composer 업데이트
가장 간단한 방법은 Composer를 최신 버전으로 업데이트하는 것입니다.
터미널에서 아래 명령어를 실행하세요:

composer self-update


업데이트가 성공하면 문제는 해결됩니다. 하지만, Composer 버전이 오래되어 self-update 명령이 제대로 작동하지 않을 수도 있습니다. 이 경우 Composer를 재설치해야 합니다.
---
1.2 Composer 재설치

  • 기존 Composer 제거
    먼저, 시스템에 설치된 Composer를 제거합니다:
sudo apt-get remove composer

 

 

  • Composer 설치 스크립트 다운로드
    다음으로 Composer 설치 스크립트를 다운로드합니다:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

 

  • 다운로드 파일 무결성 확인
    설치 파일의 무결성을 확인하여 안전성을 보장합니다:
php -r "if (hash_file('sha384', 'composer-setup.php') === 'c31c1e292ad7be5f49291169c0ac8f683499edddcfd4e42232982d0fd193004208a58ff6f353fde0012d35fdd72bc394') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"


출력 결과:

Installer verified


만약 Installer corrupt 메시지가 출력되면, 설치 파일이 손상된 것이므로 다시 다운로드해야 합니다.

  • Composer 설치
    설치 스크립트를 실행하여 Composer를 설치합니다:
php composer-setup.php

 

  • 설치 파일 삭제 및 이동
    설치가 완료되면 임시 파일을 삭제하고 Composer를 실행 가능한 경로로 이동합니다:
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/bin/composer

 

  • Composer 버전 확인
    Composer가 정상적으로 설치되었는지 확인합니다:
composer --version


---
2. 주의 사항

  • PHP 버전 확인
    Composer는 설치된 PHP 버전에 따라 작동합니다.
    터미널에서 php -v 명령을 실행하여 PHP 버전을 확인하고, Composer가 호환되는 PHP 버전에서 실행 중인지 확인하세요.
  • 권한 문제
    Composer를 설치하거나 업데이트할 때 권한 문제가 발생할 수 있습니다. 이런 경우 명령어 앞에 sudo 를 붙여 실행하세요.

    ---
    3. 결론

    PHP 7.3 이상에서 발생하는 "continue 2" 오류는 Composer를 최신 버전으로 업데이트하거나 재설치하여 해결할 수 있습니다.
    위 단계를 따라 Composer를 최신 상태로 유지하면 오류 없이 안정적으로 Composer를 사용할 수 있습니다.