एक गैर-रिक्त PSR-4 उपसर्ग को नेमस्पेस विभाजक के साथ समाप्त होना चाहिए


90

मैं 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 खाली है।

मैं क्या गलत कर रहा हूं? मैं इसे कैसे ठीक करूं?

जवाबों:


174

किसी ने एक टिप्पणी की, लेकिन इसे हटा दिया। उन्होंने उल्लेख किया कि मैं \\अंत में गायब था Acme\\modelsAcme\\models\\संदेश से छुटकारा मिलेगा और काम करना चाहिए।


6
हाँ, PSR-4अनुगामी स्लेश की आवश्यकता है। (अच्छी तरह से डबल होने के बाद से बच निकलने की जरूरत है)
कॉनर टमबल्सन

3
मुझे कहना होगा कि यह केवल एक मूर्खतापूर्ण आवश्यकता नहीं है, यह कल्पना भी स्पष्ट करती है कि यह मामला है। इसलिए कारण मैं यहां एक बहुत ही बुनियादी मुद्दे के लिए दिखाता हूं।
सकल

18
इस उत्तर का उपयोग करने के बाद, मैंने यह भी पाया कि composer validateआपको क्या गलत है इसका एक अच्छा संकेत देता है।
डेव

रिपॉजिटरी टाइप पाथ, रिलेटिव, सिम्प्लाइड का उपयोग करते समय यह समस्या पैदा करता है, क्योंकि ऐसा लगता है कि यह किसी भी तरह से इस ऑपरेशन के बाद सिम्क्लिन को फिर से बनाने की कोशिश करता है और अप्रचलित या कैश्ड कंपोजर है।
Json

0

जैसा कि दूसरों ने कहा PSR-4 requires the trailing slash

हालांकि मैं कन्वर्ट करने के लिए किया था /करने के लिए \\Windows में (लिनक्स पर ठीक से काम करना चाहिए):

    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\\Tests\\": "tests/"
        }
    },
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.