/**
  * @param array            $configs
  * @param ContainerBuilder $container
  */
 public function load(array $configs, ContainerBuilder $container)
 {
     $configuration = new Configuration();
     $config = $this->processConfiguration($configuration, $configs);
     $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $loader->load('services.xml');
     if (Kernel::VERSION < 2.6) {
         $loader->load('service_factory_2.3.xml');
     } else {
         $loader->load('service_factory_3.xml');
     }
     // Base config
     $baseConfig = [];
     foreach ($this->configKeys as $configKey) {
         if ($configKey === 'version') {
             continue 1;
         }
         $baseConfig[$configKey] = array_key_exists($configKey, $config) && $config[$configKey] ? $config[$configKey] : null;
         $container->setParameter(self::SERVICE_NAMESPACE . '.' . $configKey, $config[$configKey]);
     }
     foreach (ServicesFactory::$AVAILABLE_SERVICES as $service) {
         $serviceKey = ServicesHelper::camelcaseToUnderscore($service);
         if (array_key_exists($serviceKey, $config['services'])) {
             foreach ($this->configKeys as $configKey) {
                 if (!array_key_exists($configKey, $config['services'][$serviceKey]) && array_key_exists($configKey, $baseConfig) && $baseConfig[$configKey]) {
                     $config['services'][$serviceKey][$configKey] = $baseConfig[$configKey];
                 }
             }
         } else {
             $config['services'][$serviceKey] = array_merge($baseConfig, ['version' => 'latest']);
         }
         $container->setParameter(self::SERVICE_NAMESPACE . '.' . $serviceKey, $config['services'][$serviceKey]);
     }
 }
Example #2
0
 /**
  * @param null|string $service
  *
  * @return array
  */
 public function getParameters($service = null)
 {
     $serviceKey = ServicesHelper::camelcaseToUnderscore($service);
     return $service ? $this->parameters[$serviceKey] : array_intersect_key($this->parameters, array_flip(['key', 'secret', 'region']));
 }