Boş olmayan bir PSR-4 öneki bir ad alanı ayırıcısı ile bitmelidir


91

Composer ile PSR-4'ü kurmaya çalışıyorum ama şimdi alıyorum A non-empty PSR-4 prefix must end with a namespace separator.

Benim autoloadiçim composer.jsonşuna benziyor:

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

app/models boş.

Neyi yanlış yapıyorum? Bunu nasıl düzeltebilirim?

Yanıtlar:


177

Biri yorum yaptı ancak onu kaldırdı. O eksikti sözü \\sonunda Acme\\models. Acme\\models\\mesajdan kurtulacak ve olması gerektiği gibi çalışacaktır.


6
Evet, PSR-4sondaki eğik çizgiyi gerektirir. (kaçması gerektiğinden iki katına çıktı)
Connor Tumbleson

3
Bunun sadece aptalca bir gereklilik olmadığını söylemeliyim, teknik özellikler de durumun böyle olduğunu son derece açık hale getiriyor. İşte bu yüzden çok temel bir konu için buraya gelmemin nedeni.
2014

18
Bu cevabı kullandıktan sonra, bunun composer validatesize neyin yanlış olduğuna dair iyi bir gösterge de verdiğini gördüm .
dave

bu, depo türü yolu kullanılırken sorunlara neden olur, göreli, sembolik bağlantılı, çünkü bu işlemden hemen sonra bir şekilde sembolik bağlantıyı yeniden oluşturmaya çalışır ve eski veya önbelleğe alınmış composer.json
FantomX1

0

Başkalarının dediği gibi PSR-4 requires the trailing slash

Windows'a dönüştürmem gerekse /de \\(Linux'ta iyi çalışmalı):

    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\\Tests\\": "tests/"
        }
    },
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.