I have developed some custom artisan command for easier use with my package. Is it possible to include the artisan command into the package for easier deployment? If can, how?
Having a command set in your package structure:
<?php namespace App\Artisan;
use Illuminate\Console\Command;
class MyCommand extends Command {
protected $name = 'mypackage:mycommand';
protected $description = 'Nice description of my command.';
public function fire()
{
/// do stuff
}
}
You can, in your package Service Provider:
<?php namespace App;
use Illuminate\Support\ServiceProvider;
use App\Artisan\MyCommand;
class MyServiceProvider extends ServiceProvider {
public function register()
{
$this->registerMyCommand();
$this->commands('mycommand');
}
private function registerMyCommand()
{
$this->app['mycommand'] = $this->app->share(function($app)
{
return new MyCommand;
});
}
}
The trick is in the line
$this->commands('mycommand');
Which tells Laravel to add your command to the artisan list of commands available.