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.