ConsumeMessagesCommandFactory   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 12
c 1
b 0
f 0
dl 0
loc 20
ccs 13
cts 13
cp 1
rs 10
wmc 3

1 Method

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