From: Raphaƫl Gertz Date: Tue, 3 Apr 2018 11:06:07 +0000 (+0200) Subject: Fix default configuration tree X-Git-Tag: 0.0.3~5 X-Git-Url: https://git.rapsys.eu/packbundle/commitdiff_plain/08334ace1c75289049baf0fd690deb983d6f1922 Fix default configuration tree Use bundle default config if not set as parameter --- diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 1ea8231..341f178 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -60,13 +60,16 @@ class Configuration implements ConfigurationInterface { ], 'filter' => [ 'css' => [ - 'Rapsys\PackBundle\Twig\Filter\CPackFilter' => [$finder->find('cpack', '/usr/local/bin/cpack')] + 'class' => 'Rapsys\PackBundle\Twig\Filter\CPackFilter', + 'args' => [ $finder->find('cpack', '/usr/local/bin/cpack') ] ], 'js' => [ - 'Rapsys\PackBundle\Twig\Filter\JPackFilter' => [$finder->find('jpack', '/usr/local/bin/jpack')] + 'class' => 'Rapsys\PackBundle\Twig\Filter\JPackFilter', + 'args' => [ $finder->find('jpack', '/usr/local/bin/jpack') ] ], 'img' => [ - 'Rapsys\PackBundle\Twig\Filter\IPackFilter' => [] + 'class' => 'Rapsys\PackBundle\Twig\Filter\IPackFilter', + 'args' => [] ], ] ]; @@ -75,11 +78,9 @@ class Configuration implements ConfigurationInterface { $treeBuilder //Parameters ->root('parameters') - ->isRequired() ->addDefaultsIfNotSet() ->children() ->arrayNode('rapsys_pack') - ->isRequired() ->addDefaultsIfNotSet() ->children() ->arrayNode('config') @@ -107,22 +108,58 @@ class Configuration implements ConfigurationInterface { ->addDefaultsIfNotSet() ->children() ->arrayNode('css') - ->isRequired() - ->treatNullLike(array()) - ->scalarPrototype()->end() - ->defaultValue($defaults['filter']['css']) + #XXX: undocumented, see Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.php +513 + ->addDefaultChildrenIfNoneSet() + ->arrayPrototype() + ->children() + ->scalarNode('class') + ->isRequired() + ->defaultValue($defaults['filter']['css']['class']) + ->end() + ->arrayNode('args') + ->isRequired() + ->treatNullLike(array()) + ->defaultValue($defaults['filter']['css']['args']) + ->scalarPrototype()->end() + ->end() + ->end() + ->end() ->end() ->arrayNode('js') - ->isRequired() - ->treatNullLike(array()) - ->scalarPrototype()->end() - ->defaultValue($defaults['filter']['js']) + #XXX: undocumented, see Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.php +513 + ->addDefaultChildrenIfNoneSet() + ->arrayPrototype() + ->children() + ->scalarNode('class') + ->isRequired() + ->defaultValue($defaults['filter']['js']['class']) + ->end() + ->arrayNode('args') + ->isRequired() + ->treatNullLike(array()) + ->defaultValue($defaults['filter']['js']['args']) + ->scalarPrototype()->end() + ->end() + ->end() + ->end() ->end() ->arrayNode('img') - ->isRequired() - ->treatNullLike(array()) - ->scalarPrototype()->end() - ->defaultValue($defaults['filter']['img']) + #XXX: undocumented, see Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.php +513 + ->addDefaultChildrenIfNoneSet() + ->arrayPrototype() + ->children() + ->scalarNode('class') + ->isRequired() + ->defaultValue($defaults['filter']['img']['class']) + ->end() + ->arrayNode('args') + ->isRequired() + ->treatNullLike(array()) + ->defaultValue($defaults['filter']['img']['args']) + ->scalarPrototype()->end() + ->end() + ->end() + ->end() ->end() ->end() ->end() diff --git a/DependencyInjection/RapsysPackExtension.php b/DependencyInjection/RapsysPackExtension.php index 97bb11f..5397036 100644 --- a/DependencyInjection/RapsysPackExtension.php +++ b/DependencyInjection/RapsysPackExtension.php @@ -24,6 +24,11 @@ class RapsysPackExtension extends Extension { //Load configuration $configuration = $this->getConfiguration($configs, $container); $config = $this->processConfiguration($configuration, $configs); + + //Set default config in parameter + if (!$container->hasParameter($alias = $this->getAlias())) { + $container->setParameter($alias, $config[$alias]); + } } /**