2015-02-13 13 views
11

Śledziłem wzdłuż http://laravel.com/docs/5.0/commands i byłem w stanie stworzyć polecenie rzemieślnicze w Laravel 5. Ale jak mogę stworzyć polecenie rzemieślnicze i spakować je do paczek?Laravel 5 - Tworzenie polecenia rzemieślnika dla pakietów

+0

utworzyć nowy projekt i przyjrzeć sprzedawca/laravel/Framework/src/Illuminate/Auth/* znajduje się folder "Console", w którym możesz zobaczyć, jak działa polecenie make: auth, a sam folder Auth jest pakietem, więc możesz to zrobić jako przykład :)! – lcjury

Odpowiedz

28

można i należy zarejestrować polecenia pakietów wewnątrz usługodawcy wykorzystaniem $this->commands() w metodzie register():

namespace Vendor\Package; 

class MyServiceProvider extends ServiceProvider { 

    protected $commands = [ 
     'Vendor\Package\Commands\MyCommand', 
     'Vendor\Package\Commands\FooCommand', 
     'Vendor\Package\Commands\BarCommand', 
    ]; 

    public function register(){ 
     $this->commands($this->commands); 
    } 
} 
+0

Dzięki za odpowiedź. Ale jak mogę odnieść to do mojego pliku poleceń? Na przykład, jeśli umieściłem wszystkie pliki poleceń w folderze 'Commands', gdzie folder poleceń znajduje się na tej samej ścieżce MyServiceProvider. Jak mogę utworzyć link do tego? – user1995781

+2

Po pierwsze, polecenia muszą być automatycznie ładowane. Zwykle, jeśli inne pliki w twoim pakiecie działają, tak powinno być. (Upewnij się, że polecenia znajdują się we właściwej przestrzeni nazw odpowiadającej jej katalogowi. Powinno to być coś w stylu 'namespace Vendor \ Package \ Commands') Następnie wystarczy odwołać się do niego z pełną nazwą w tablicy' $ commands'. Tak jak w mojej edytowanej odpowiedzi ... – lukasgeiter

+1

Jeśli ustawiono $ defferred = true, polecenia nie pojawiają się na wyjściu rzemieślnika .. :( –