空でないPSR-4プレフィックスは、名前空間セパレータで終了する必要があります


89

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 空です。

私は何が間違っているのですか?どうすればこれを修正できますか?

回答:


173

誰かがコメントをしましたが、それを削除しました。彼は私が\\の終わりに行方不明だったと述べましたAcme\\modelsAcme\\models\\メッセージを取り除き、正常に動作します。


6
はい、PSR-4末尾にスラッシュが必要です。(エスケープする必要があるため、2倍になります)
Connor Tumbleson 2014年

3
これは愚かな要件であるだけでなく、仕様はこれが事実であることを非常に明確にしていると言わなければなりません。したがって、私がここに現れる理由は、非常に基本的な問題です。
aross 2014

18
この答えを使用した後、私はまたcomposer validateあなたに何が悪いのかについての良い指標を与えることを発見しました。
デイブ2015

これは、リポジトリタイプのパス、相対、シンボリックリンクを使用するときに問題を引き起こします。これは、この操作の直後に何らかの形でシンボリックリンクを再作成しようとし、composer.json
FantomX1

0

他の人が言ったように PSR-4 requires the trailing slash

私はWindowsで変換する/必要\\がありましたが(Linuxでは正常に動作するはずです):

    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\\Tests\\": "tests/"
        }
    },
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.