2014-04-04 3 views
0

내 디렉토리 구조는 여기 등 청구, 예외, 저장소를 포함 응용 프로그램 디렉토리에서 사용자 지정 폴더를 사용하고로드되지 클래스 ...Laravel PSR-4 자동

app 
    -iw 
    -Billing 
     -BillingInterface.php 
     -StripeBilling.php 
    -Exceptions 
    -Repositories 
    -macros.php 

composer.json

"psr-4": { 
     "iw\\" : "app/iw" 
    }, 

명령 composer dump-autoload -o

클래스 실행

// app/iw/BillingInterface.php (location) 

<?php namespace iw\Billing; 

interface BillingInterface {} 

그리고

// app/iw/StripeBilling.php (location) 

<?php namespace iw\Billing; 

class StripeBilling { 

    public function bill() 
    { 
     dd('billing'); 
    } 

} 

난 내가 vendor/composer/autoload_ps4.php이 새 폴더에 업데이트되지 않은 것으로 나타났습니다 클래스를 찾을 수 없습니다 오류가 발생하고있다. 도와주세요. 감사

+0

잘 구조가 모두 올바른, 작곡가 0 오류를 제공 보면? 호기심에서'' "psr-4"''선언은 자동로드 트리에 있습니까? 작곡가 자체 업데이트를 시도 했습니까? – arma

+0

@arma 예 composer는 0의 에러를 제공합니다. 그리고 나는 작곡가 자기 업데이트 – seoppc

+0

을 시험해 보았는데 그것은 똑같은 테스트를 만들었고 예상대로 작동했습니다. – arma

답변

0

나는이 JSON 파일을 시도하고 일했다 ...

"autoload": { 
     "psr-4": {"iw\\" : "app/iw" }, 
     "classmap": [ 
      "app/commands", 
      "app/controllers", 
      "app/models", 
      "app/database/migrations", 
      "app/database/seeds", 
      "app/tests/TestCase.php" 
     ] 
    } 

하지만 자동로드 섹션에 "psr-4": {"iw\\" : "app/iw" }를 추가 한 후 일을 왜 제안 해주십시오.

+0

그것이 자동로드가하는 일입니다. 그것은 PHP 자동 로더에 대한 매핑을 추가합니다. https://getcomposer.org/doc/04-schema.md#autoload – arma

+0

큰 도움을 주셔서 고맙습니다 @arma, 그리고 한가지 더, iw 폴더 안에 custom macroros.php (coutry 선택 필드 용)를 넣었습니다. 이 오류 ...'method selectCountry does not exist'는 app/안에 넣고 global.php에서 참조하지만 autoloader에서로드하지 않거나 뭔가 빠졌습니다. – seoppc

+0

위 매크로가 여러분을 위해 잘 돌아갔습니다. 예를 들어, 폼이나 HTML 파사드보다 먼저로드 될 수 있기 때문에 작곡가에서 직접로드 할 수 없습니다 (물론 누군가는 할 수 있지만 꽤되지는 않을 것입니다). 할 수있는 일은 start.php 또는 global.php에로드하는 것뿐입니다. – arma

2

"classmap"에 "app/iw"를 추가하십시오.

"autoload": { 
    "classmap": [ 
     "app/commands", 
     "app/controllers", 
     "app/models", 
     "app/database/migrations", 
     "app/database/seeds", 
     "app/tests/TestCase.php", 
     "app/iw" 
    ], 
    "psr-4" : { 
     "iw\\" : "app/iw" 
    } 
} 

실행

composer dump-autoload -o 
+2

'classmap'변경을 피하기 위해 psr-4의 요점은 무엇입니까? – JustAMartin