classe não está em conformidade com o padrão de carregamento automático psr-4. Pulando [duplicado]
Tento usar o autoload do composer, mas recebo este erro
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
}
}
minha saída 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
Respostas
O padrão PSR-4 requer que seus arquivos e diretórios façam distinção entre maiúsculas e minúsculas e que as classes e namespaces correspondentes estejam em PascalCase.
Para uma App\Controllers\BaseController
aula, o arquivo deve estar localizado em:
app/Controllers/BaseController.php
Observe as letras maiúsculas
C
2º erro : Para qualquer namespace após o namespace de nível superior , deve haver um diretório com o mesmo nome.
Você tem uma App\RoutingDispatcher
classe que deveria ser colocada como, app/RoutingDispatcher.php
mas o app/routing/RoutingDispatcher.php
arquivo corresponderia a uma App\Routing\RoutingDispatcher
classe.
Você deve alterar o namespace dessa classe ou mover o arquivo.
Se você alterar seu namespace, certifique-se de renomear o
app/routing
diretório com uma letra maiúscula inicial.