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/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.

DependencyInjection/ServiceLoader/MetadataDrivers.php 1 location

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