I'm developing a Laravel 4 package that uses Sentry 2. In order for Sentry 2 to be installed I have to run migrations and publish their configurations:
php artisan migrate --package=cartalyst/sentry
php artisan config:publish cartalyst/sentry
I would like to allow users of my package to simply run the migrations and publish configs for my own package without having to run that for Sentry 2, or any other package that I might require.
Is there any way to do this? Should this be done at all, or should I keep asking my users to run the migrations/publish confs for every package?
Thanks
EDIT:
As promissed, I've followed @AntonioCarlosRibeiro proposal and created a new Artisan command:
class SybilInstall extends Command
{
protected $name = 'sybil:install';
protected $description = 'Install the sybil package';
public function fire()
{
$this->call(
'migrate',
array('--package' => 'cartalyst/sentry')
);
$this->call(
'migrate',
array('--package' => 'ghunti/sybil')
);
$this->call(
'asset:publish',
array('ghunti/sybil')
);
}
}
Now people onlye need to run php artisan sybil:install
and it will take care of everything
Inside your package you can run (Laravel 4.1+):
Docs: http://laravel.com/docs/commands#calling-other-commands
On older versions: