StopWorkersCommandFactory   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 16
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
eloc 7
dl 0
loc 16
ccs 6
cts 6
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 14 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