클래스가 psr-4 자동 로딩 표준을 준수하지 않습니다. 건너 뛰는 중 [중복]
Nov 27 2020
작성기 자동로드를 사용하려고하는데이 오류가 발생합니다.
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
}
}
내 터미널 출력
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에 될 수있는 해당 클래스와 네임 스페이스로 파일 및 디렉토리를 필요로한다.
A의 App\Controllers\BaseController
클래스 파일이 위치해야합니다 :
app/Controllers/BaseController.php
대문자를 주목하십시오
C
두 번째 오류 : 최상위 네임 스페이스 이후의 모든 네임 스페이스 에 대해 동일한 이름을 가진 디렉토리가 있어야합니다.
당신은이 App\RoutingDispatcher
로 배치되어야 수업을 app/RoutingDispatcher.php
하지만, app/routing/RoutingDispatcher.php
파일이에 해당하는 것이다 App\Routing\RoutingDispatcher
클래스입니다.
해당 클래스의 네임 스페이스를 변경하거나 파일을 이동해야합니다.
네임 스페이스를 변경하는
app/routing
경우 선행 대문자로 디렉토리 이름을 변경해야합니다 .