2015-02-13 10 views
11

Ho seguito il comando http://laravel.com/docs/5.0/commands e sono in grado di creare un comando artigiano in Laravel 5. Ma come posso creare un comando artisan e inserirlo nei pacchetti?Laravel 5 - Creazione del comando Artisan per i pacchetti

+0

Creare un nuovo progetto e dare un'occhiata al fornitore/laravel/quadro/src/Illuminate/Auth/*, c'è una cartella "Console" in cui puoi vedere come funziona make: auth e la cartella Auth stessa è un pacchetto, quindi puoi seguirlo come esempio :)! – lcjury

risposta

28

Si può e deve registrare i comandi del pacchetto all'interno di un fornitore di servizi utilizzando $this->commands() nel metodo 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

Grazie per la risposta. Ma come posso riferirmi al mio file di comando? Ad esempio, se inserisco tutti i file di comando nella cartella 'Commands', dove la cartella dei comandi si trova sullo stesso percorso di MyServiceProvider. Come posso collegarmi ad esso? – user1995781

+2

Prima di tutto, i comandi devono essere caricati automaticamente. Normalmente, se gli altri file nel pacchetto funzionano, dovrebbe essere il caso. (Assicurati che i comandi siano nel giusto spazio dei nomi corrispondente alla sua directory. Dovrebbe essere qualcosa come 'namespace Vendor \ Package \ Commands') Quindi devi solo fare riferimento con il suo nome completo nella matrice' $ commands'. Come nella mia risposta modificata ... – lukasgeiter

+1

Se $ defferred = true è impostato, i comandi non compaiono sull'output dell'artigiano .. :( –

Problemi correlati