Seit Laravel 5 ist es interessiert mich - wie Konsolenbefehl registrieren und 5.Wie man Konsolenbefehl vom Paket in Laravel 5 registriert?
Wie in laracast diskutieren https://laracasts.com/discuss/channels/tips/developing-your-packages-in-laravel-5 in Laravel von Paket zu verwenden, i eine Verzeichnisstruktur erstellen, mein Paket automatisch zu laden hinzufügen und erstellen Sie einen Dienst Anbieter
<?php namespace Goodvin\EternalTree;
use Console\InstallCommand;
use Illuminate\Support\ServiceProvider;
class EternalTreeServiceProvider extends ServiceProvider
{
public function boot()
{
}
public function register()
{
$this->registerCommands();
}
protected function registerCommands()
{
$this->registerInstallCommand();
}
protected function registerInstallCommand()
{
$this->app->singleton('command.eternaltree.install', function($app) {
return new InstallCommand();
});
}
public function provides()
{
return [
'command.eternaltree.install'
];
}
}
Mein InstallCommand.php Skript in/src/Console
<?php namespace Goodvin\EternalTree\Console;
use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;
class InstallCommand extends Command {
protected $name = 'install:eternaltree';
protected $description = 'Command for EternalTree migration & model install.';
public function __construct()
{
parent::__construct();
}
public function fire()
{
$this->info('Command eternaltree:install fire');
}
}
I Anbieter in app.php & ausführen Dump-Autoload registrieren Dienst gespeichert. Aber wenn ich versuche,
php artisan eternaltree:install
ausführen es mir zeigen
[InvalidArgumentException] There are no commands defined in the "eternaltree" namespace.
Ich glaube, mein Befehl nicht vom Dienstanbieter registriert ist, weil php Handwerker Liste nicht meinen Befehl zeigen. Kann mir jemand erklären, wie man Befehle in einem eigenen Paket in Laravel 5 richtig registriert?
tat, wie Sie vorgeschlagen: - Implementiert MyServiceProvider erweitert Serviceprovider dann '' 'public function register() { // $ this-> Befehle ([ LaravelTypesController :: Klasse ]); } '' - LaravelTypesController erweitert Befehl mit $ Signatur, $ Beschreibung und Handle-Methode, aber immer noch nicht Befehl auf PHP Artisan | Grep –