2016-08-02 3 views
0

가 좀 Composer 자동 로딩과 주변의 작은 연극을 꾸게 및 디렉토리 구조 내 composer.json I가 다음PSR4 작곡가 Autloading는

"autoload": { 
     "psr-4": { 
      "App\\": "app/" 
     } 
    } 
내부

index.php 
app/ 
    helpers/ 
      router.php 
vendor/ 
    composer/ 
      /*usual files*/ 
    autoload.php 

그래서 내가 몇 가지 문제를 얻고 네임 스페이스 내 index.php 내부

내가 가진

<?php 
// Autoload our namespaces 
require __DIR__.'/vendor/autoload.php'; 

use App\Helpers\Router; 
$route = new Router; 

내가 시도하고 그것을 작동하지만 난 잘못된거야 어디 확실 해요 얻을 수있는 몇 가지 다른 일을 시도

Fatal error: Class 'App\Helpers\Router' not found in /var/www/public/index.php on line 6

다음과 같은 오류를 얻기. 이것은 프레임 워크 외부에서 Composer를 사용하여 자동로드를 조사한 첫 번째 사례이므로 모든 지침을 이해할 수 있습니다.

답변

5

PSR-4는 대소 문자를 구분합니다. 구조는 app/Helpers/Router.php 이상이어야합니다. 자본 :

모든 클래스 이름은 대소 문자를 구분하여 참조해야합니다.

하위 디렉터리 이름은 하위 이름 공간 이름의 대/소문자와 일치해야합니다.

종결되는 클래스 이름은 .php로 끝나는 파일 이름에 해당합니다. 파일 이름은 종료 클래스 이름의 대소 문자와 일치해야합니다.

http://www.php-fig.org/psr/psr-4/

+2

추가 팁 : 당신은 그냥 composer.json에 자동로드 설정을 업데이트 한 경우에만이 아니라'작곡가 update'을 기다리는 것보다 작곡가 dumpautoload''로 자동로드 설정을 다시 생성에 작곡가를 얻을 수 있습니다 건포도가없는 패키지 목록을 업데이트하십시오. – Sammitch

+0

대/소문자 구분과 파일 이름 공백이 약간 섞여서 감사합니다. 정말 도와 주신 모든 분들께 감사드립니다! –