Niepusty prefiks PSR-4 musi kończyć się separatorem przestrzeni nazw

90

Próbuję skonfigurować PSR-4 z Composerem, ale dopiero zaczynam A non-empty PSR-4 prefix must end with a namespace separator.

Mój autoloadw moim composer.jsonwyglądzie wygląda tak:

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

app/models jest pusty.

Co ja robię źle? Jak mogę to naprawić?

Marwelln
źródło

Odpowiedzi:

174

Ktoś skomentował, ale go usunął. Wspomniał, że zaginęłam \\pod koniec Acme\\models. Acme\\models\\pozbędzie się wiadomości i będzie działać tak, jak powinno.

Marwelln
źródło
6
Tak, PSR-4wymaga końcowego ukośnika. (dobrze podwójnie, ponieważ trzeba uciec)
Connor Tumbleson
3
Muszę powiedzieć, że to nie tylko głupi wymóg, specyfikacja również bardzo jasno pokazuje, że tak jest. Stąd powód, dla którego pokazuję się tutaj z powodu bardzo podstawowego problemu.
aross
18
Po skorzystaniu z tej odpowiedzi odkryłem również, że to composer validaterównież daje dobre wskazanie, co jest nie tak.
dave
to powoduje problemy podczas korzystania z repozytorium typu path, względna, dowiązanie symboliczne, ponieważ wydaje się, że próbuje w jakiś sposób odtworzyć dowiązanie symboliczne tuż po tej operacji i ma przestarzałe lub buforowane
pliki
0

Jak powiedzieli inni PSR-4 requires the trailing slash

Chociaż musiałem przekonwertować /na \\w systemie Windows (powinno działać dobrze na Linuksie):

    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\\Tests\\": "tests/"
        }
    },
M w
źródło