StopWorkersCommandFactory::__invoke()   A
last analyzed

Complexity

Conditions 3
Paths 4

Size

Total Lines 14
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 3

Importance

Changes 0
Metric Value
eloc 6
dl 0
loc 14
ccs 5
cts 5
cp 1
rs 10
c 0
b 0
f 0
cc 3
nc 4
nop 1
crap 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace TMV\Laminas\Messenger\Factory\Command;
6
7
use Psr\Cache\CacheItemPoolInterface;
8
use Psr\Container\ContainerInterface;
9
use Symfony\Component\Messenger\Command\StopWorkersCommand;
10
use TMV\Laminas\Messenger\Exception\InvalidArgumentException;
11
12
/**
13
 * @psalm-api
14 2
 */
15
final class StopWorkersCommandFactory
16 2
{
17
    public function __invoke(ContainerInterface $container): StopWorkersCommand
18 2
    {
19
        /** @var array{messenger: array{cache_pool_for_restart_signal?: string}} $config */
20 2
        $config = $container->has('config') ? $container->get('config') : [];
21 1
        $cachePoolForRestartSignalName = $config['messenger']['cache_pool_for_restart_signal'] ?? null;
22
23
        if (null === $cachePoolForRestartSignalName) {
24
            throw new InvalidArgumentException('Invalid cache_pool_for_restart_signal name');
25 1
        }
26
27 1
        /** @var CacheItemPoolInterface $cachePoolForRestartSignal */
28
        $cachePoolForRestartSignal = $container->get($cachePoolForRestartSignalName);
29
30
        return new StopWorkersCommand($cachePoolForRestartSignal);
31
    }
32
}
33