la clase no cumple con el estándar de carga automática psr-4. Omitiendo [duplicar]

Nov 27 2020

Intento usar la carga automática del compositor pero obtengo este error

composer.json

    {
        "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
        }
    
    }

mi salida de terminal

    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

Respuestas

14 AymDev Nov 27 2020 at 21:06

El estándar PSR-4 requiere que sus archivos y directorios distingan entre mayúsculas y minúsculas y que las clases y espacios de nombres correspondientes estén en PascalCase.

Para una App\Controllers\BaseControllerclase, el archivo debe estar ubicado en:

app/Controllers/BaseController.php

Note las mayúsculas C

Segundo error : para cualquier espacio de nombres después del espacio de nombres de nivel superior , debe haber un directorio con el mismo nombre.
Tiene una App\RoutingDispatcherclase que debería colocarse como app/RoutingDispatcher.phppero el app/routing/RoutingDispatcher.phparchivo correspondería a una App\Routing\RoutingDispatcherclase.
Debe cambiar el espacio de nombres de esa clase o mover el archivo.

Si cambia su espacio de nombres, asegúrese de cambiar el nombre del app/routingdirectorio con una letra mayúscula inicial.