klasa nie jest zgodna ze standardem automatycznego ładowania psr-4. Pomijanie [duplikat]
Próbuję użyć automatycznego ładowania programu Composer, ale pojawia się ten błąd
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
}
}
moje wyjście terminala
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
Odpowiedzi
Standard PSR-4 wymaga, aby w plikach i katalogach była rozróżniana wielkość liter, a odpowiednie klasy i przestrzenie nazw znajdowały się w PascalCase.
W przypadku App\Controllers\BaseController
zajęć plik powinien znajdować się w:
app/Controllers/BaseController.php
Zwróć uwagę na wielkie litery
C
Drugi błąd : dla dowolnej przestrzeni nazw po przestrzeni nazw najwyższego poziomu musi istnieć katalog o tej samej nazwie.
Masz App\RoutingDispatcher
klasę, która powinna być umieszczona jako, app/RoutingDispatcher.php
ale app/routing/RoutingDispatcher.php
plik odpowiadałby App\Routing\RoutingDispatcher
klasie.
Musisz zmienić przestrzeń nazw tej klasy lub przenieść plik.
Jeśli zmienisz jego przestrzeń nazw, pamiętaj, aby zmienić nazwę
app/routing
katalogu na początkową wielką literę.