InstallCommand.php
TLDR
This file contains the InstallCommand
class, which is responsible for creating the migration repository.
Classes
InstallCommand
The InstallCommand
class extends the Command
class and is used to create the migration repository. It has the following properties and methods:
-
Properties:
-
$name
: Represents the console command name. It is set to'migrate:install'
. -
$description
: Represents the console command description. It is set to'Create the migration repository'
. -
$repository
: Represents the migration repository instance of typeMigrationRepositoryInterface
.
-
-
Methods:
-
__construct(MigrationRepositoryInterface $repository)
: Constructor method that initializes the$repository
property. -
handle()
: Executes the console command. It sets the source of the repository and creates the migration repository using thecreateRepository()
method of the repository instance. Finally, it displays a success message using theinfo()
method of the$components
property. -
getOptions()
: Retrieves the console command options. In this case, it returns an array with a single optiondatabase
, which is of typeInputOption::VALUE_OPTIONAL
.
-
<?php
namespace Illuminate\Database\Console\Migrations;
use Illuminate\Console\Command;
use Illuminate\Database\Migrations\MigrationRepositoryInterface;
use Symfony\Component\Console\Input\InputOption;
class InstallCommand extends Command
{
/**
* The console command name.
*
* @var string
*/
protected $name = 'migrate:install';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Create the migration repository';
/**
* The repository instance.
*
* @var \Illuminate\Database\Migrations\MigrationRepositoryInterface
*/
protected $repository;
/**
* Create a new migration install command instance.
*
* @param \Illuminate\Database\Migrations\MigrationRepositoryInterface $repository
* @return void
*/
public function __construct(MigrationRepositoryInterface $repository)
{
parent::__construct();
$this->repository = $repository;
}
/**
* Execute the console command.
*
* @return void
*/
public function handle()
{
$this->repository->setSource($this->input->getOption('database'));
$this->repository->createRepository();
$this->components->info('Migration table created successfully.');
}
/**
* Get the console command options.
*
* @return array
*/
protected function getOptions()
{
return [
['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use'],
];
}
}