Passed
Pull Request — master (#914)
by Asmir
02:33
created

StatusCommand::configure()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 19
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 14
nc 1
nop 0
dl 0
loc 19
ccs 11
cts 11
cp 1
crap 1
rs 9.7998
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Doctrine\Migrations\Tools\Console\Command;
6
7
use Symfony\Component\Console\Input\InputInterface;
8
use Symfony\Component\Console\Input\InputOption;
9
use Symfony\Component\Console\Output\OutputInterface;
10
11
/**
12
 * The StatusCommand class is responsible for outputting what the current state is of all your migrations. It shows
13
 * what your current version is, how many new versions you have to execute, etc. and details about each of your migrations.
14
 */
15
class StatusCommand extends DoctrineCommand
16
{
17
    /** @var string */
18
    protected static $defaultName = 'migrations:status';
19
20 1
    protected function configure() : void
21
    {
22
        $this
23 1
            ->setAliases(['status'])
24 1
            ->setDescription('View the status of a set of migrations.')
25 1
            ->addOption(
26 1
                'show-versions',
27 1
                null,
28 1
                InputOption::VALUE_NONE,
29 1
                'This will display a list of all available migrations and their status'
30
            )
31 1
            ->setHelp(<<<EOT
32 1
The <info>%command.name%</info> command outputs the status of a set of migrations:
33
34
    <info>%command.full_name%</info>
35
EOT
36
            );
37
38 1
        parent::configure();
39 1
    }
40
41 1
    public function execute(InputInterface $input, OutputInterface $output) : ?int
42
    {
43 1
        $storage       = $this->getDependencyFactory()->getMetadataStorage();
44 1
        $migrationRepo = $this->getDependencyFactory()->getMigrationRepository();
45
46 1
        $availableMigrations = $migrationRepo->getMigrations();
47 1
        $executedMigrations  = $storage->getExecutedMigrations();
48
49 1
        $statusCalculator              = $this->getDependencyFactory()->getMigrationStatusCalculator();
50 1
        $newMigrations                 = $statusCalculator->getNewMigrations();
51 1
        $executedUnavailableMigrations = $statusCalculator->getExecutedUnavailableMigrations();
52
53 1
        $infosHelper = $this->getDependencyFactory()->getMigrationStatusInfosHelper();
54 1
        $infosHelper->showMigrationsInfo($output, $availableMigrations, $executedMigrations, $newMigrations, $executedUnavailableMigrations);
55
56 1
        return 0;
57
    }
58
}
59