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

UnlockCommand   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Test Coverage

Coverage 0%

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 4
c 2
b 0
f 1
lcom 1
cbo 5
dl 0
loc 53
ccs 0
cts 29
cp 0
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 7 1
A configure() 0 13 1
A execute() 0 10 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