From 08334ace1c75289049baf0fd690deb983d6f1922 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rapha=C3=ABl=20Gertz?= Date: Tue, 3 Apr 2018 13:06:07 +0200 Subject: [PATCH 1/1] Fix default configuration tree Use bundle default config if not set as parameter --- DependencyInjection/Configuration.php | 71 ++++++++++++++++----- DependencyInjection/RapsysPackExtension.php | 5 ++ 2 files changed, 59 insertions(+), 17 deletions(-) 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]); + } } /** -- 2.41.1