Code Duplication    Length = 24-25 lines in 3 locations

DependencyInjection/ServiceLoader/SearchClients.php 1 location

@@ 45-68 (lines=24) @@
42
    /**
43
     * {@inheritdoc}
44
     */
45
    public function load(array $config, ContainerBuilder $container)
46
    {
47
        $managerDef = $container->getDefinition(Utility::getAliasedName('storage_manager'));
48
49
        foreach ($config['search_clients'] as $name => $clientConfig) {
50
            $clientName = Utility::getAliasedName(sprintf('search_client.%s', $name));
51
            if (isset($clientConfig['service'])) {
52
                // Custom search client.
53
                $container->setAlias($clientName, Utility::cleanServiceName($clientConfig['service']));
54
            } else {
55
                // Built-in client.
56
                switch ($clientConfig['type']) {
57
                    case 'elastic':
58
                        $definition = $this->createElasticClient($clientName, $container);
59
                        break;
60
                    default:
61
                        throw new \RuntimeException(sprintf('The search client type "%s" is currently not supported.', $clientConfig['type']));
62
                }
63
                $container->setDefinition($clientName, $definition);
64
            }
65
            $managerDef->addMethodCall('addSearchClient', [new Reference($clientName)]);
66
        }
67
        return $this;
68
    }
69
}
70

DependencyInjection/ServiceLoader/MetadataDrivers.php 1 location

@@ 104-128 (lines=25) @@
101
    /**
102
     * {@inheritdoc}
103
     */
104
    public function load(array $config, ContainerBuilder $container)
105
    {
106
        foreach ($config['metadata']['drivers'] as $name => $driverConfig) {
107
            $driverName = Utility::getAliasedName(sprintf('metadata.driver.%s', $name));
108
            if (isset($driverConfig['service'])) {
109
                // Custom persister.
110
                $container->setAlias($driverName, Utility::cleanServiceName($driverConfig['service']));
111
            } else {
112
                // Built-in driver.
113
                switch ($driverConfig['type']) {
114
                    case 'yml':
115
                        $definition = $this->createYmlDriver($driverName, $driverConfig, $container);
116
                        break;
117
                    default:
118
                        throw new \RuntimeException(sprintf('Unable to create a metadata driver for type "%s"', $driverConfig['type']));
119
                }
120
                $definition->setPublic(false);
121
                $container->setDefinition($driverName, $definition);
122
            }
123
            // The library currently only supports one driver. Must break and set as default alias.
124
            $container->setAlias(Utility::getAliasedName('metadata.default_driver'), $driverName);
125
            break;
126
        }
127
        return $this;
128
    }
129
}
130

DependencyInjection/ServiceLoader/Persisters.php 1 location

@@ 20-43 (lines=24) @@
17
    /**
18
     * {@inheritdoc}
19
     */
20
    public function load(array $config, ContainerBuilder $container)
21
    {
22
        $managerDef = $container->getDefinition(Utility::getAliasedName('storage_manager'));
23
24
        foreach ($config['persisters'] as $name => $persisterConfig) {
25
            $persisterName = Utility::getAliasedName(sprintf('persister.%s', $name));
26
            if (isset($persisterConfig['service'])) {
27
                // Custom persister.
28
                $container->setAlias($persisterName, Utility::cleanServiceName($persisterConfig['service']));
29
            } else {
30
                // Built-in persister.
31
                switch ($persisterConfig['type']) {
32
                    case 'mongodb':
33
                        $definition = $this->createMongoDbPersister($persisterName, $persisterConfig, $container);
34
                        break;
35
                    default:
36
                        throw new \RuntimeException(sprintf('The persister type "%s" is currently not supported.', $persisterConfig['type']));
37
                }
38
                $container->setDefinition($persisterName, $definition);
39
            }
40
            $managerDef->addMethodCall('addPersister', [new Reference($persisterName)]);
41
        }
42
        return $this;
43
    }
44
45
    /**
46
     * Creates the connection service definition.