ConsumeMessagesCommandFactory::__invoke()   A
last analyzed

Complexity

Conditions 3
Paths 2

Size

Total Lines 18
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 13
CRAP Score 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 12
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 18
ccs 13
cts 13
cp 1
crap 3
rs 9.8666
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