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ć?

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.


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/"
        }
    },
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.