private function resolveConfigurationSources(ContainerBuilder $container, array $config)
{
$configurationProviders = [];
foreach ($this->configurationSourceFactories as $configurationSourceFactory) {
$sourceName = $configurationSourceFactory->getName();
if (isset($config['sources'][$sourceName]) && $config['sources'][$sourceName]['enabled']) {
$sourceConfig = $config['sources'][$sourceName];
$configurationProvider = $configurationSourceFactory->initializeSource($container, $sourceConfig);
if (!$configurationProvider instanceof Reference && !$configurationProvider instanceof Definition) {
throw new \InvalidArgumentException(sprintf('Source factory "%s" was expected to return an instance of "%s" or "%s", "%s" found', $configurationSourceFactory->getName(), Reference::class, Definition::class, is_object($configurationProvider) ? get_class($configurationProvider) : gettype($configurationProvider)));
}
$configurationProviders[] = $configurationProvider;
}
}
$compositeConfigurationProvider = $container->getDefinition('sylius.theme.configuration.provider');
$compositeConfigurationProvider->replaceArgument(0, $configurationProviders);
foreach ($this->configurationSourceFactories as $configurationSourceFactory) {
$container->addObjectResource($configurationSourceFactory);
}
}