Completed
Pull Request — master (#11)
by Clément
04:00 queued 33s
created

UnlockCommand::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 2
Bugs 0 Features 1
Metric Value
c 2
b 0
f 1
dl 0
loc 7
ccs 0
cts 6
cp 0
rs 9.4285
cc 1
eloc 4
nc 1
nop 2
crap 2
1
<?php
2
3
namespace Itkg\DelayEventBundle\Command;
4
5
use Itkg\DelayEventBundle\Handler\LockHandlerInterface;
6
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
7
use Symfony\Component\Console\Input\InputInterface;
8
use Symfony\Component\Console\Input\InputOption;
9
use Symfony\Component\Console\Output\OutputInterface;
10
11
/**
12
 * Class UnlockCommand
13
 */
14
class UnlockCommand extends ContainerAwareCommand
15
{
16
    /**
17
     * @var LockHandlerInterface
18
     */
19
    private $lockHandler;
20
21
    /**
22
     * @param LockHandlerInterface $lockHandler
23
     * @param null|string          $name
24
     */
25
    public function __construct(
26
        LockHandlerInterface $lockHandler, $name = null)
27
    {
28
        $this->lockHandler = $lockHandler;
29
30
        parent::__construct($name);
31
    }
32
33
    /**
34
     * {@inheritDoc}
35
     */
36
    protected function configure()
37
    {
38
        $this
39
            ->setName('itkg_delay_event:unlock')
40
            ->setDescription('Unlock command')
41
            ->addOption(
42
                'channels',
43
                'c',
44
                InputOption::VALUE_IS_ARRAY | InputOption::VALUE_REQUIRED,
45
                'Specify the channels to unlock (default: [\'default\'])',
46
                ['default']
47
            );
48
    }
49
50
    /**
51
     * @param InputInterface  $input
52
     * @param OutputInterface $output
53
     *
54
     * @return int|null|void
55
     */
56
    protected function execute(InputInterface $input, OutputInterface $output)
57
    {
58
        foreach ($input->getOption('channels') as $channel) {
59
            $this->lockHandler->release($channel);
60
            $output->writeln(sprintf(
61
                'Channel <info>%s</info> unlocked.',
62
                $channel
63
            ));
64
        }
65
    }
66
}
67