아래 Composer 튜토리얼 칼럼에서는 Composer가 코드 라이브러리를 재귀적으로 로드하지 않는 이유를 설명합니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!
Composer 가 코드 베이스를 재귀적으로 로드하지 않는 이유는 무엇인가요?
사용자 정의 라이브러리를 사용할 때 Composer가 필요한 요구 사항 라이브러리를 재귀적으로 로드하지 않기 때문에 문제가 발생할 수 있으므로 이러한 라이브러리 .json 파일에서 모든 작곡가를 다시 정의해야 합니다.
이런 이유를 자세히 설명하기 전에 다음을 이해해야 합니다. 사용자 정의 VCS 및 패키지 저장소의 주요 용도는 일시적으로 무언가를 테스트하거나 일부 개선을 위해 프로젝트를 포크하는 것이며, 풀 요청은 아직 병합되지 않았습니다. 개인 팩을 추적하는 데 이를 사용해서는 안 됩니다. 이 문제에 대해서는 회사나 심지어 자신을 위한 개인 팩을 처리하려면 Private Packagist를 살펴봐야 합니다.
종속성 해결 프로그램이 사용자 정의 리포지토리를 사용하도록 하는 세 가지 방법이 있습니다.
● 루트 패키지의 리포지토리를 읽고 다음에서 모든 소프트웨어 패키지를 가져옵니다. 정의된 리포지토리를 확인하고 종속성 요구 사항을 해결합니다. 이것은 현재 상태이며 "재귀적으로 저장소를 로드할 수 없습니다"라는 제한을 제외하고는 정상적으로 작동합니다.
● 루트 패키지의 저장소를 읽고 정의된 저장소에서 리소스 패키지를 초기화합니다. 재귀적 초기화는 모든 종속 패키지에 정의된 저장소와 이러한 종속 패키지가 의존하는 다른 패키지의 정의를 기반으로 합니다. . repos 등을 확인한 다음 종속성 요구 사항을 해결합니다. 이는 작동할 수 있지만 각 VCS 저장소를 읽는 데 몇 초가 걸리므로 초기화 속도에 심각한 영향을 미칩니다. 패키지의 다른 버전이 패키지 저장소의 동일한 패키지이지만 다른 dist/source에서 나올 수 있기 때문에 궁극적으로 실패할 수 있습니다. 잘못될 수 있는 일이 너무 많습니다.
● 루트 패키지의 저장소를 읽은 다음 첫 번째 수준 종속성을 읽은 다음 이러한 종속 패키지가 의존하는 다른 패키지 등을 읽은 다음 종속성 요구 사항을 구문 분석합니다. 이것이 더 효율적으로 들리지만 여전히 두 번째 솔루션의 문제가 있습니다. 종속 저장소를 로드하는 것은 말처럼 쉽지 않기 때문입니다. 일치하는 가능한 모든 종속성 패키지의 저장소를 로드해야 하며 이러한 패키지의 정의가 서로 충돌할 수 있습니다.
더 많은 작곡가 사용법 튜토리얼을 보려면 composer 명령 사용법 그래픽 튜토리얼 컬럼을 방문하세요!
위 내용은 Composer가 코드 베이스를 재귀적으로 로드하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!