Ejemplo n.º 1
0
 private function postProcessComplexSetting($setting, $sa, ContainerBuilder $container)
 {
     $configResolver = $container->get('ezpublish.config.resolver.core');
     if (!$configResolver->hasParameter($setting, null, $sa)) {
         return false;
     }
     $settingValue = $configResolver->getParameter($setting, null, $sa);
     if (!$this->complexSettingParser->containsDynamicSettings($settingValue)) {
         return false;
     }
     // we kind of need to process this as well, don't we ?
     if ($this->complexSettingParser->isDynamicSetting($settingValue)) {
         $parts = $this->complexSettingParser->parseDynamicSetting($settingValue);
         if (!isset($parts['namespace'])) {
             $parts['namespace'] = 'ezsettings';
         }
         if (!isset($parts['scope'])) {
             $parts['scope'] = $sa;
         }
         return $configResolver->getParameter($parts['param'], null, $sa);
     }
     $value = $settingValue;
     foreach ($this->complexSettingParser->parseComplexSetting($settingValue) as $dynamicSetting) {
         $parts = $this->complexSettingParser->parseDynamicSetting($dynamicSetting);
         if (!isset($parts['namespace'])) {
             $parts['namespace'] = 'ezsettings';
         }
         if (!isset($parts['scope'])) {
             $parts['scope'] = $sa;
         }
         $dynamicSettingValue = $configResolver->getParameter($parts['param'], $parts['namespace'], $parts['scope']);
         $value = str_replace($dynamicSetting, $dynamicSettingValue, $value);
     }
     return $value;
 }
Ejemplo n.º 2
0
 public function process(ContainerBuilder $container)
 {
     foreach ($container->getDefinitions() as $serviceId => $definition) {
         $arguments = $definition->getArguments();
         foreach ($arguments as $argumentIndex => $argumentValue) {
             if (!is_string($argumentValue)) {
                 continue;
             }
             if (!$this->parser->containsDynamicSettings($argumentValue)) {
                 continue;
             }
             if ($this->parser->isDynamicSetting($argumentValue)) {
                 continue;
             }
             $arguments[$argumentIndex] = $this->createComplexSettingExpression($argumentValue, $this->parser->parseComplexSetting($argumentValue));
         }
         $definition->setArguments($arguments);
     }
 }
 public function process(ContainerBuilder $container)
 {
     foreach ($container->getDefinitions() as $serviceId => $definition) {
         $arguments = $definition->getArguments();
         foreach ($arguments as $argumentIndex => $argumentValue) {
             if (!is_string($argumentValue)) {
                 continue;
             }
             if (!$this->parser->containsDynamicSettings($argumentValue)) {
                 continue;
             }
             if ($this->parser->isDynamicSetting($argumentValue)) {
                 continue;
             }
             $factoryServiceId = sprintf('%s.%s_%d', $serviceId, '__complex_setting_factory', $argumentIndex);
             $container->setDefinition($factoryServiceId, $this->createFactoryDefinition($argumentValue, $this->parser->parseComplexSetting($argumentValue)));
             $arguments[$argumentIndex] = new Reference($factoryServiceId);
             $definition->setArguments($arguments);
         }
     }
 }