Completed
Push — master ( 993468...5fd9a9 )
by Markus
12s queued 10s
created

TransferGenerateCommand   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 16
dl 0
loc 60
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 10 1
A configure() 0 6 1
A execute() 0 6 1
1
<?php
2
3
namespace Jellyfish\Transfer\Command;
4
5
use Jellyfish\Transfer\TransferCleanerInterface;
6
use Jellyfish\Transfer\TransferGeneratorInterface;
7
use Psr\Log\LoggerInterface;
8
use Symfony\Component\Console\Command\Command;
9
use Symfony\Component\Console\Input\InputArgument;
10
use Symfony\Component\Console\Input\InputInterface;
11
use Symfony\Component\Console\Output\OutputInterface;
12
13
class TransferGenerateCommand extends Command
14
{
15
    public const NAME = 'transfer:generate';
16
    public const DESCRIPTION = 'Generate transfer classes and factories';
17
18
    /**
19
     * @var \Psr\Log\LoggerInterface
20
     */
21
    protected $logger;
22
23
    /**
24
     * @var \Jellyfish\Transfer\TransferGeneratorInterface
25
     */
26
    protected $transferGenerator;
27
28
    /**
29
     * @var \Jellyfish\Transfer\TransferCleanerInterface
30
     */
31
    protected $transferCleaner;
32
33
    /**
34
     * @param \Jellyfish\Transfer\TransferGeneratorInterface $transferGenerator
35
     * @param \Jellyfish\Transfer\TransferCleanerInterface $transferCleaner
36
     * @param \Psr\Log\LoggerInterface $logger
37
     */
38
    public function __construct(
39
        TransferGeneratorInterface $transferGenerator,
40
        TransferCleanerInterface $transferCleaner,
41
        LoggerInterface $logger
42
    ) {
43
        $this->transferGenerator = $transferGenerator;
44
        $this->transferCleaner = $transferCleaner;
45
        $this->logger = $logger;
46
47
        parent::__construct();
48
    }
49
50
    /**
51
     * @return void
52
     */
53
    protected function configure(): void
54
    {
55
        parent::configure();
56
57
        $this->setName(static::NAME);
58
        $this->setDescription(static::DESCRIPTION);
59
    }
60
61
    /**
62
     * @param \Symfony\Component\Console\Input\InputInterface $input
63
     * @param \Symfony\Component\Console\Output\OutputInterface $output
64
     *
65
     * @return int|null
66
     */
67
    protected function execute(InputInterface $input, OutputInterface $output): ?int
68
    {
69
        $this->transferCleaner->clean();
70
        $this->transferGenerator->generate();
71
72
        return null;
73
    }
74
}
75