protected function getGranularity($name) { $granularities = Configuration::getGranularities(); if (!array_key_exists($name, $granularities)) { throw new \InvalidArgumentException(sprintf('Unknown granularity: `%s`. There are these: `%s`', $name, implode('`, `', array_keys($granularities)))); } return $granularities[$name]; }
/** * {@inheritdoc} */ public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('services.yml'); if (!array_key_exists('default_granularity', $config)) { throw new InvalidConfigurationException('The `default_granularity` is required!'); } $granularities = Configuration::getGranularities(); foreach ($granularities as $key => $value) { $name = sprintf('webtown_php_fine_diff.granularity.%s', $key); $container->setParameter($name, $value); } $granularity = $granularities[$config['default_granularity']]; $container->setParameter('webtown_php_fine_diff.default_granularity', $granularity); $definition = $container->getDefinition('webtown_php_fine_diff.twig.extension'); $definition->replaceArgument(0, $granularity); }