/**
  * @param ContainerBuilder   $container
  * @param ProcessorDecorator $processor
  * @param string             $scope
  *
  * @return array
  */
 protected function loadConfig(ContainerBuilder $container, ProcessorDecorator $processor, $scope)
 {
     $config = array();
     $alias = $scope === 'app' ? 'system' : $scope;
     $configLoader = new CumulativeConfigLoader(sprintf('oro_%s_configuration', $alias), new YamlCumulativeFileLoader(sprintf('Resources/config/%s_configuration.yml', $alias)));
     $resources = $configLoader->load($container);
     foreach ($resources as $resource) {
         $config = $processor->merge($config, $resource->data);
     }
     return $config;
 }
 /**
  * {@inheritDoc}
  */
 public function process(ContainerBuilder $container)
 {
     $config = [];
     $processor = new ProcessorDecorator();
     foreach ($container->getParameter('kernel.bundles') as $bundle) {
         $reflection = new \ReflectionClass($bundle);
         if (is_file($file = dirname($reflection->getFilename()) . '/Resources/config/' . self::CONFIG_FILE_NAME)) {
             $bundleConfig = Yaml::parse(file_get_contents(realpath($file)));
             $config = $processor->merge($config, $bundleConfig);
         }
     }
 }
 /**
  * {@inheritDoc}
  */
 public function process(ContainerBuilder $container)
 {
     $config = array();
     $processor = new ProcessorDecorator();
     foreach ($container->getParameter('kernel.bundles') as $bundle) {
         $reflection = new \ReflectionClass($bundle);
         if (is_file($file = dirname($reflection->getFilename()) . '/Resources/config/' . self::CONFIG_FILE_NAME)) {
             $bundleConfig = Yaml::parse(file_get_contents(realpath($file)));
             $config = $processor->merge($config, $bundleConfig);
         }
     }
     $taggedServices = $container->findTaggedServiceIds(FormProvider::TAG_NAME);
     if ($taggedServices) {
         $config = $processor->process($config);
         foreach ($taggedServices as $id => $attributes) {
             $container->getDefinition($id)->replaceArgument(0, $config);
         }
     }
 }
 /**
  * @dataProvider mergeDataProvider
  *
  * @param array $startData
  * @param array $newData
  * @param array $expectedResult
  */
 public function testMerge($startData, $newData, $expectedResult)
 {
     $this->assertEquals($expectedResult, $this->processor->merge($startData, $newData));
 }
 /**
  * @param ContainerBuilder   $container
  * @param ProcessorDecorator $processor
  *
  * @return array
  */
 protected function loadConfig(ContainerBuilder $container, ProcessorDecorator $processor)
 {
     $config = [];
     $configLoader = new CumulativeConfigLoader('oro_system_configuration', new YamlCumulativeFileLoader('Resources/config/system_configuration.yml'));
     $resources = $configLoader->load($container);
     foreach ($resources as $resource) {
         $config = $processor->merge($config, $resource->data);
     }
     return $config;
 }