2013-07-18 2 views
5

Laravel의 패키지가 테스트/테스트이라고 가정 해 봅시다.Laravel workbench에 패키지가 생성되었지만 공급 업체 폴더로 전송하는 방법은 무엇입니까?

나는 워크 벤치에서 패키지를 만들었으며 다음과 같이 크게 작동했습니다. Jason Lewis' tutorial. 이제 워크 벤치를 공급 업체 디렉토리에 밖으로 옮기고 싶습니다. 이것은 모든 자습서가 짧은, 심지어 laravel 워드 프로세서에 해당하는 곳입니다. git을 사용하여 파일을 이동하지 않으려 고 했으므로 테스트/테스트 패키지를 Workbench에서 공급 업체 디렉토리로 복사 한 다음 Workbench에서 삭제했습니다. workbench (또는 .gitignore 파일에서 발견 한 다른 파일)에서 test/test/vendor 폴더를 복사하지 않았습니다. 그런 다음 작곡가를 설치하여 새 벤더/테스트/테스트 디렉토리에서을 설치하십시오. 그런 다음 작곡가 dump-autoload을 laravel 루트 디렉토리에서 만들었습니다. 내 응용 프로그램을 실행할 때

가 지금은 패키지가 워크 벤치에있을 때 내가 못해서 오류 얻을 :

Class 'Test\Test\TestServiceProvider' not found 
(this is coming from \bootstrap\compiled.php on line 4121) 

나는 또한 laravel 루트에서 PHP 장인 덤프 - 자동로드를했다 및 이 같은 오류가 발생합니다.

아이디어가 있으십니까? 아니면 누군가가 벤더 디렉토리의 마지막 지점에 패키지 개발을하는 튜토리얼로 안내 할 수 있습니까?

답변

7

제대로 작동합니다.

내가 추가 한 다음 laravel의 루트 디렉토리에 composer.json에서 자동로드 섹션

"psr-0": { 
    "Test\\Test": "vendor/test/test/src/" 
} 

은 다음과 같습니다 그래서 :

"autoload": { 
    "classmap": [ 
     "app/commands", 
     "app/controllers", 
     "app/models", 
     "app/database/migrations", 
     "app/database/seeds", 
     "app/tests/TestCase.php" 
    ], 
    "psr-0": { 
     "Test\\Test": "vendor/test/test/src/" 
    }  
}, 

나중에 Packagist에 패키지를 넣어하기로 결정하는 경우 autoload에서 이것을 제거하고 필자의 composer.json의 "require"부분에서 참조 된 패키지를 유지할 수 있습니다. 내가 그걸 알게되면 어떻게되는지 알게 될거야!

+0

비록, 그것이 당신의 자식에서 제외 공급 업체 폴더 (기본적으로) 커밋이다. 'app/lib'와 같은 것을 만들기를 권합니다. 프로덕션으로 이동할 때 수동으로 이동하지 않아도됩니다. psr-0 경로를 변경하십시오. – wesside

+0

그냥 .gitignore 파일을 편집하고'/ vendor/*'바로 아래에'!/vendor/Test'를 추가하십시오. – prograhammer

+0

이 문제에 대해 고맙습니다. 정확한 문제가 있었으며 문제가 바로 해결되었습니다. –

0

나는이 같은 로컬 저장소에서 귀하의 하드 드라이브에서 패키지를 설치할 수 있다고 생각 :

"repositories": [ 
    { 
     "type":"vcs", 
     "url":"/path/to/repo/here" 
    } 
], 
"require":{ 
    "me/myrepo":"dev-master" 
} 
관련 문제