SymfifyCommand::configure()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 6
ccs 4
cts 4
cp 1
rs 10
cc 1
nc 1
nop 0
crap 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Zalas\Symfify\Composer;
6
7
use Composer\Command\BaseCommand;
8
use Symfony\Component\Console\Input\InputArgument;
9
use Symfony\Component\Console\Input\InputInterface;
10
use Symfony\Component\Console\Output\OutputInterface;
11
use Zalas\Symfify\Composer\SymfifyStep\ChangeWorkingDirectoryStep;
12
use Zalas\Symfify\Composer\SymfifyStep\CreateDirectoriesStep;
13
use Zalas\Symfify\Composer\SymfifyStep\CreateFilesStep;
14
use Zalas\Symfify\Composer\SymfifyStep\InstallDependenciesStep;
15
16
class SymfifyCommand extends BaseCommand
17
{
18
    const VERSION = '1.0.0-dev';
19
20 5
    protected function configure()
21
    {
22 5
        $this->setName('symfify');
23 5
        $this->addArgument('path', InputArgument::REQUIRED, 'Path to symfify');
24 5
        $this->setDescription('Sets up a basic Symfony project in a code base that did not start as a Symfony project.');
25
    }
26
27 2
    protected function execute(InputInterface $input, OutputInterface $output)
28
    {
29 2
        $output->writeln(\sprintf('<info>Symfify</info> version <comment>%s</comment>', self::VERSION));
30 2
        $output->writeln('');
31
32
        $steps = [
33 2
            new ChangeWorkingDirectoryStep($input->getArgument('path')),
34 2
            new InstallDependenciesStep($output),
35 2
            new CreateDirectoriesStep($output),
36 2
            new CreateFilesStep($output),
37
        ];
38
39
        \array_walk($steps, function (SymfifyStep $step) {
40 2
            $step();
41 2
        });
42
    }
43
}
44