2013-07-18 13 views
5

Powiedzmy, że moja paczka w Laravel to test/test.Utworzono pakiet w środowisku roboczym Laravel, ale jak przenieść do folderu dostawcy?

Utworzyłem pakiet w środowisku roboczym i działał świetnie po Jason Lewis' tutorial. Teraz chcę przenieść pakiet z do środowiska roboczego. To tutaj wszystkie samouczki upadają, nawet dokumentacja laravel. Nie chciałem używać git do przenoszenia plików, więc po prostu skopiowałem pakiet test/test ze środowiska roboczego do katalogu producenta (a następnie usunąłem go ze środowiska roboczego). Nie skopiowałem folderu test/test/vendor ze środowiska roboczego (ani żadnych innych plików, które zauważyłem w pliku .gitignore). Następnie uruchomiłem composer install z mojego nowego katalogu/test/test. Zrobiłem wtedy autor dump-autoload z głównego katalogu laravel.

Teraz, gdy uruchomię mojej aplikacji pojawia się błąd, że nie dostałem, gdy opakowanie było w warsztacie:

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

Ja też zrobiłem php rzemieślnik zrzutu AutoLoad z korzenia laravel i Otrzymuję ten sam błąd.

Wszelkie pomysły? A może ktoś poprowadzi mnie do samouczka, który przenosi rozwój paczki do punktu końcowego odpoczynku w katalogu dostawcy?

Odpowiedz

7

Gotowy do pracy.

I dodaje:

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

do sekcji autoload w composer.json w katalogu laravel więc wygląda to tak:

"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/" 
    }  
}, 

Jeśli zdecyduję się umieścić pakiet na Packagist później wtedy mogę usunąć to z autoload i po prostu zachować pakiet wymieniony w "wymaganiu" części mojego composer.json. Zobaczymy, co się stanie, gdy dojdę tak daleko!

+0

Choć jest to w folderze dostawcy, który jest wykluczony z git popełnia (domyślnie). Sugerowałbym zrobienie czegoś w rodzaju 'app/lib', więc kiedy przejdziesz do produkcji, nie musisz przenosić go ręcznie i trwa w repozytorium. Po prostu zmień ścieżkę psr-0. – wesside

+0

Po prostu edytuję ten plik .gitignore i tuż pod '/ vendor/*' Dodaję '!/Vendor/Test' – prograhammer

+0

Dziękuję za to, że miałem dokładnie ten sam problem, a twoje pytanie natychmiast rozwiązało mój problem. –

0

myślę, że można instalować pakiety z dysku twardego jak z lokalnego repozytorium tak:

"repositories": [ 
    { 
     "type":"vcs", 
     "url":"/path/to/repo/here" 
    } 
], 
"require":{ 
    "me/myrepo":"dev-master" 
} 
Powiązane problemy