ConsumeMessagesCommandFactory   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 12
c 0
b 0
f 0
dl 0
loc 20
rs 10
ccs 12
cts 12
cp 1
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 18 4
1
<?php
2
3
declare(strict_types=1);
4
5
namespace TMV\Laminas\Messenger\Factory\Command;
6
7
use Psr\Container\ContainerInterface;
8
use Symfony\Component\Messenger\Command\ConsumeMessagesCommand;
9
use Symfony\Component\Messenger\RoutableMessageBus;
10
11
use function array_keys;
12
13
/**
14 2
 * @psalm-api
15
 */
16 2
final class ConsumeMessagesCommandFactory
17
{
18 2
    public function __invoke(ContainerInterface $container): ConsumeMessagesCommand
19 2
    {
20 2
        $config = $container->has('config') ? $container->get('config') : [];
21 2
        /** @var RoutableMessageBus $messageBus */
22
        $messageBus = $container->get('messenger.routable_message_bus');
23 2
        $eventDispatcher = $config['messenger']['event_dispatcher'] ?? 'messenger.event_dispatcher';
24 2
        $logger = $config['messenger']['logger'] ?? null;
25 2
        $transports = $config['messenger']['transports'] ?? [];
26 2
27 2
        $command = new ConsumeMessagesCommand(
28 2
            $messageBus,
29
            $container->get('messenger.receivers_locator'),
30
            $container->get($eventDispatcher),
31 2
            $logger && $container->has($logger) ? $container->get($logger) : null,
32
            array_keys($transports)
33
        );
34
35
        return $command;
36
    }
37
}
38