Ein nicht leeres PSR-4-Präfix muss mit einem Namespace-Trennzeichen enden

87

Ich versuche, PSR-4 mit Composer einzurichten, aber ich bekomme gerade A non-empty PSR-4 prefix must end with a namespace separator.

Mein autoloadin meinem composer.jsonsieht so aus:

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

app/models ist leer.

Was mache ich falsch? Wie kann ich das beheben?

Marwelln
quelle

Antworten:

168

Jemand hat einen Kommentar abgegeben, ihn aber entfernt. Er erwähnte, dass ich \\am Ende vermisst wurde Acme\\models. Acme\\models\\wird die Nachricht loswerden und so arbeiten, wie es sollte.

Marwelln
quelle
6
Ja, PSR-4erfordert den abschließenden Schrägstrich. (gut doppelt, da es entkommen muss)
Connor Tumbleson
3
Ich muss sagen, dass dies nicht nur eine dumme Anforderung ist, die Spezifikation macht auch extrem deutlich, dass dies der Fall ist. Daher tauche ich hier für ein sehr grundlegendes Thema auf.
Aross
18
Nachdem ich diese Antwort verwendet habe, habe ich auch festgestellt, dass composer validatesie Ihnen auch einen guten Hinweis darauf gibt, was falsch ist.
Dave
Dies führt zu Problemen bei der Verwendung des Repository-Typpfads relativ, symlinked, da anscheinend versucht wird, symlink unmittelbar nach diesem Vorgang neu zu erstellen, und composer.json
FantomX1