Passed
Pull Request — master (#400)
by Théo
03:15
created

BaseCommand   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 17
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 4
dl 0
loc 17
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A execute() 0 5 1
A getConfigurationHelper() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of the box project.
7
 *
8
 * (c) Kevin Herrera <[email protected]>
9
 *     Théo Fidry <[email protected]>
10
 *
11
 * This source file is subject to the MIT license that is bundled
12
 * with this source code in the file LICENSE.
13
 */
14
15
namespace KevinGH\Box\Console\Command;
16
17
use KevinGH\Box\Console\Application;
18
use KevinGH\Box\Console\ConfigurationHelper;
19
use KevinGH\Box\Console\IO\IO;
20
use KevinGH\Box\Console\OutputFormatterConfigurator;
21
use Symfony\Component\Console\Command\Command as SymfonyCommand;
22
use Symfony\Component\Console\Input\InputInterface;
23
use Symfony\Component\Console\Output\OutputInterface;
24
25
/**
26
 * Tiny Symfony Command adapter to allow the command to easily access to the typehinted helpers which are configured
27
 * in the application.
28
 *
29
 * @see Application
30
 */
31
abstract class BaseCommand extends SymfonyCommand
32
{
33
    abstract protected function executeCommand(IO $io): int;
34
35
    /**
36
     * {@inheritdoc}
37
     */
38
    protected function execute(InputInterface $input, OutputInterface $output): int
39
    {
40
        OutputFormatterConfigurator::configure($output);
41
42
        return $this->executeCommand(new IO($input, $output));
43
    }
44
45
    final protected function getConfigurationHelper(): ConfigurationHelper
46
    {
47
        return $this->getHelper('config');
48
    }
49
}
50