비어 있지 않은 PSR-4 접두사는 네임 스페이스 구분자로 끝나야합니다.


90

Composer로 PSR-4를 설정하려고하는데 A non-empty PSR-4 prefix must end with a namespace separator.

autoload내에서 composer.json다음과 같다 :

"autoload": {
    "psr-4": {
        "Acme\\models" : "app/models"
    }
},

app/models 비었다.

내가 도대체 ​​뭘 잘못하고있는 겁니까? 이 문제를 어떻게 해결할 수 있습니까?

답변:


174

누군가 댓글을 달았지만 삭제했습니다. 그는 \\말에 내가 실종되었다고 언급했습니다 Acme\\models. Acme\\models\\메시지를 제거하고 정상적으로 작동합니다.


6
예, PSR-4후행 슬래시가 필요합니다. (탈출해야하므로 두 배가됩니다.)
Connor Tumbleson 2014 년

3
나는 이것이 어리석은 요구 사항 일뿐만 아니라 사양 은 이것이 사실임을 극도로 명확하게합니다. 따라서 제가 여기에 나타난 이유는 매우 기본적인 문제입니다.

18
이 답변을 사용한 후 나는 또한 composer validate무엇이 잘못되었는지에 대한 좋은 표시를 제공 한다는 것을 발견했습니다 .
데이브

이로 인해 저장소 유형 경로, 상대, 심볼릭 링크를 사용할 때 문제가 발생합니다.이 작업 직후 심볼릭 링크를 다시 생성하려고 시도하고 더 이상 사용되지 않거나 캐시 된 composer.json
FantomX1

0

다른 사람들이 말했듯이 PSR-4 requires the trailing slash

비록 나는 변환했습니다 /\\(리눅스에서 잘 작동합니다) Windows에서 :

    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\\Tests\\": "tests/"
        }
    },
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.