> 백엔드 개발 > PHP 튜토리얼 > Composer가 클래스 경로 불일치에 대해 PSR-4 자동 로딩 지원 중단 경고를 발행하는 이유는 무엇입니까?

Composer가 클래스 경로 불일치에 대해 PSR-4 자동 로딩 지원 중단 경고를 발행하는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-29 00:58:10
원래의
537명이 탐색했습니다.

Why is Composer issuing PSR-4 autoloading deprecation warnings about class path mismatches?

Composer PSR-4 자동 로딩 지원 중단: 클래스 경로 불일치

업데이트 및 설치와 같은 작성기 명령을 실행할 때 다음과 같은 지원 중단 알림이 표시될 수 있습니다. PSR-4 자동 로딩 표준을 준수하지 않는 클래스는 일반적으로 클래스 사이에 불일치가 있을 때 발생합니다. 정규화된 이름과 해당 파일의 경로.

경로 대소문자

가장 일반적인 원인은 경로 이름 구성 요소와 클래스 이름의 대소문자가 일치하지 않는 것입니다. 예를 들어, "foo/bar/Baz.php"는 "FooBarBaz"와 일치하지 않습니다. 각 경로 이름 구성 요소의 대소문자가 해당 구성 요소가 나타내는 네임스페이스의 대소문자와 일치하는지 확인하세요. "FooBarBaz"에 대한 "Foo/Bar/Baz.php" 조건. 때로는 클래스(또는 네임스페이스)의 이름이 FooBar일 수 있지만 해당 디스크 경로는 "foo-bar"입니다. 이 상황은 또한 경고를 유발합니다. 파일이나 클래스(또는 네임스페이스)의 이름을 바꿔야 합니다.

클래스나 네임스페이스 이름을 변경하는 것보다 경로나 파일을 변경하는 것이 더 쉬운 경우가 많습니다. 클래스나 네임스페이스 이름을 변경하려면 새 이름과 일치하도록 코드를 리팩터링해야 하지만 경로를 변경하면 리팩토링이 필요하지 않기 때문입니다. 콘텐츠.

중첩된 네임스페이스 및 누락된 선언

이 있고 Dummy 클래스가 src/Buzz에 정의되어 있다고 가정합니다.

위 코드는 잘 작동하지만 다른 상황과 유사한 경고가 발생합니다. 올바른 접근 방식은 다음과 같습니다.

"autoload": {
    "psr-4": {
        "Fizz\Buzz\": "src/"
    }
}
로그인 후 복사

영향을 받는 클래스뿐만 아니라 해당 클래스를 사용하거나 가져오는 다른 파일도 변경해야 합니다(예를 들어 이제 FizzBuzzBuzzDummy; 사용을 선언). .

위 내용은 Composer가 클래스 경로 불일치에 대해 PSR-4 자동 로딩 지원 중단 경고를 발행하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿