ConfigureDependencyFactoryPass   A
last analyzed

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 23
    public function process(ContainerBuilder $container) : void
16
    {
17 23
        $preferredEm  = $container->getParameter('doctrine.migrations.preferred_em');
18 23
        $diDefinition = $container->getDefinition('doctrine.migrations.dependency_factory');
19
20 23
        $emID = sprintf('doctrine.orm.%s_entity_manager', $preferredEm ?: 'default');
21
22 23
        if ($container->has($emID)) {
23 15
            $container->getDefinition('doctrine.migrations.em_loader')
24 15
                ->setArgument(0, new Reference($emID));
25
26 15
            $diDefinition->setFactory([DependencyFactory::class, 'fromEntityManager']);
27 15
            $diDefinition->setArgument(1, new Reference('doctrine.migrations.em_loader'));
28
        } else {
29 8
            $preferredConnection = $container->getParameter('doctrine.migrations.preferred_connection');
30 8
            $connectionId        = sprintf('doctrine.dbal.%s_connection', $preferredConnection ?: 'default');
31 8
            $container->getDefinition('doctrine.migrations.connection_loader')
32 8
                ->setArgument(0, new Reference($connectionId));
33
34 8
            $diDefinition->setFactory([DependencyFactory::class, 'fromConnection']);
35 8
            $diDefinition->setArgument(1, new Reference('doctrine.migrations.connection_loader'));
36
        }
37 23
    }
38
}
39