वर्ग psr-4 ऑटोलोडिंग मानक का अनुपालन नहीं करता है। लंघन [डुप्लिकेट]

Nov 27 2020

मैं संगीतकार ऑटोलॉड का उपयोग करने की कोशिश करता हूं लेकिन मुझे यह त्रुटि मिलती है

संगीतकार.जॉन

    {
        "autoload":{
            "psr-4":{
                "App\\":"app/"
            },
            "files": ["app/functions/helper.php"]
        },
        "require": {
            "vlucas/phpdotenv": "^2.4",
            "altorouter/altorouter": "^1.2",
            "philo/laravel-blade": "^3.1"
        },
        "config":{
            "optimize-autoloader":true
        }
    
    }

मेरा टर्मिनल आउटपुट

    Generating optimized autoload files
    Class App\Controllers\BaseController located in D:/php/Xamp/htdocs/MVC_PHP/app\controllers\BaseController.php does not comply with psr-4 autoloading standard. Skipping.
    Class App\Controllers\IndexControllers located in D:/php/Xamp/htdocs/MVC_PHP/app\controllers\IndexControllers.php does not comply with psr-4 autoloading standard. Skipping.
    Class App\RoutingDispatcher located in D:/php/Xamp/htdocs/MVC_PHP/app\routing\RoutingDispatcher.php does not comply with psr-4 autoloading standard. Skipping.
    Generated optimized autoload files containing 508 classes

जवाब

14 AymDev Nov 27 2020 at 21:06

PSR-4 मानक के लिए अपनी फ़ाइलें और निर्देशिका केस संवेदी है और इसी वर्गों और नामस्थान PascalCase में होने के लिए की आवश्यकता है।

एक App\Controllers\BaseControllerकक्षा के लिए, फ़ाइल में स्थित होना चाहिए:

app/Controllers/BaseController.php

अपरकेस को नोटिस करें C

दूसरी त्रुटि : शीर्ष स्तर के नामस्थान के बाद किसी भी नाम स्थान के लिए , उसी नाम के साथ एक निर्देशिका होनी चाहिए।
आपके पास एक App\RoutingDispatcherवर्ग है जिसे रखा जाना चाहिए app/RoutingDispatcher.phpलेकिन app/routing/RoutingDispatcher.phpफ़ाइल एक App\Routing\RoutingDispatcherवर्ग के अनुरूप होगी ।
आपको उस वर्ग के नाम स्थान को बदलना होगा या फ़ाइल को स्थानांतरित करना होगा।

यदि आप इसके नाम स्थान को बदलते हैं, तो app/routingएक प्रमुख अपरकेस पत्र के साथ निर्देशिका का नाम बदलना सुनिश्चित करें ।