kelas tidak sesuai dengan standar autoloading psr-4. Melewati [duplikat]
Saya mencoba menggunakan pemuatan otomatis komposer tetapi saya mendapatkan kesalahan ini
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
}
}
keluaran terminal saya
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
Jawaban
Standar PSR-4 mengharuskan file dan direktori Anda peka huruf besar / kecil dan kelas serta namespace yang sesuai harus ada di PascalCase.
Untuk App\Controllers\BaseController
kelas, file harus ditempatkan di:
app/Controllers/BaseController.php
Perhatikan huruf besarnya
C
Kesalahan kedua : Untuk namespace apa pun setelah namespace tingkat atas , harus ada direktori dengan nama yang sama.
Anda memiliki App\RoutingDispatcher
kelas yang harus ditempatkan sebagai app/RoutingDispatcher.php
tetapi app/routing/RoutingDispatcher.php
file akan sesuai dengan App\Routing\RoutingDispatcher
kelas.
Anda harus mengubah namespace kelas itu atau memindahkan file.
Jika Anda mengubah namespace-nya, pastikan untuk mengganti nama
app/routing
direktori dengan huruf besar di depan.