Code Duplication    Length = 24-25 lines in 3 locations

DependencyInjection/ServiceLoader/MetadataDrivers.php 1 location

@@ 94-118 (lines=25) @@
91
     * {@inheritdoc}
92
     * @todo    Add low-level support for multiple drivers in the metadata factory.
93
     */
94
    public function load(array $config, ContainerBuilder $container)
95
    {
96
        foreach ($config['metadata']['drivers'] as $name => $driverConfig) {
97
            $driverName = Utility::getAliasedName(sprintf('metadata.driver.%s', $name));
98
            if (isset($driverConfig['service'])) {
99
                // Custom persister.
100
                $container->setAlias($driverName, Utility::cleanServiceName($driverConfig['service']));
101
            } else {
102
                // Built-in driver.
103
                switch ($driverConfig['type']) {
104
                    case 'yml':
105
                        $definition = $this->createYmlDriver($driverName, $driverConfig, $container);
106
                        break;
107
                    default:
108
                        throw new \RuntimeException(sprintf('Unable to create a metadata driver for type "%s"', $driverConfig['type']));
109
                }
110
                $definition->setPublic(false);
111
                $container->setDefinition($driverName, $definition);
112
            }
113
            // The library currently only supports one driver. Must break and set as default alias.
114
            $container->setAlias(Utility::getAliasedName('metadata.default_driver'), $driverName);
115
            break;
116
        }
117
        return $this;
118
    }
119
}
120

DependencyInjection/ServiceLoader/Persisters.php 1 location

@@ 57-80 (lines=24) @@
54
    /**
55
     * {@inheritdoc}
56
     */
57
    public function load(array $config, ContainerBuilder $container)
58
    {
59
        $managerDef = $container->getDefinition(Utility::getAliasedName('storage_manager'));
60
61
        foreach ($config['persisters'] as $name => $persisterConfig) {
62
            $persisterName = Utility::getAliasedName(sprintf('persister.%s', $name));
63
            if (isset($persisterConfig['service'])) {
64
                // Custom persister.
65
                $container->setAlias($persisterName, Utility::cleanServiceName($persisterConfig['service']));
66
            } else {
67
                // Built-in persister.
68
                switch ($persisterConfig['type']) {
69
                    case 'mongodb':
70
                        $definition = $this->createMongoDbPersister($persisterName, $persisterConfig, $container);
71
                        break;
72
                    default:
73
                        throw new \RuntimeException(sprintf('The persister type "%s" is currently not supported.', $persisterConfig['type']));
74
                }
75
                $container->setDefinition($persisterName, $definition);
76
            }
77
            $managerDef->addMethodCall('addPersister', [new Reference($persisterName)]);
78
        }
79
        return $this;
80
    }
81
}
82

DependencyInjection/ServiceLoader/SearchClients.php 1 location

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