Passed
Push — master ( e17376...74a3c9 )
by Asmir
01:07 queued 17s
created

ConfigureDependencyFactoryPass   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 15
dl 0
loc 23
ccs 15
cts 15
cp 1
rs 10
c 1
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A process() 0 21 4
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Doctrine\Bundle\MigrationsBundle\DependencyInjection\CompilerPass;
6
7
use Doctrine\Migrations\DependencyFactory;
8
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
9
use Symfony\Component\DependencyInjection\ContainerBuilder;
10
use Symfony\Component\DependencyInjection\Reference;
11
use function sprintf;
12
13
class ConfigureDependencyFactoryPass implements CompilerPassInterface
14
{
15 18
    public function process(ContainerBuilder $container) : void
16
    {
17 18
        $preferredEm  = $container->getParameter('doctrine.migrations.preferred_em');
18 18
        $diDefinition = $container->getDefinition('doctrine.migrations.dependency_factory');
19
20 18
        $emID = sprintf('doctrine.orm.%s_entity_manager', $preferredEm ?: 'default');
21
22 18
        if ($container->has($emID)) {
23 14
            $container->getDefinition('doctrine.migrations.em_loader')
24 14
                ->setArgument(0, new Reference($emID));
25
26 14
            $diDefinition->setFactory([DependencyFactory::class, 'fromEntityManager']);
27 14
            $diDefinition->setArgument(1, new Reference('doctrine.migrations.em_loader'));
28
        } else {
29 4
            $preferredConnection = $container->getParameter('doctrine.migrations.preferred_connection');
30 4
            $connectionId        = sprintf('doctrine.dbal.%s_connection', $preferredConnection ?: 'default');
31 4
            $container->getDefinition('doctrine.migrations.connection_loader')
32 4
                ->setArgument(0, new Reference($connectionId));
33
34 4
            $diDefinition->setFactory([DependencyFactory::class, 'fromConnection']);
35 4
            $diDefinition->setArgument(1, new Reference('doctrine.migrations.connection_loader'));
36
        }
37 18
    }
38
}
39