Browse Source

[MonologBundle] Updated the Configuration class to the new syntax

Christophe Coevoet 14 years ago
parent
commit
1bb18bf9cc
1 changed files with 30 additions and 24 deletions
  1. 30 24
      src/Symfony/Bundle/MonologBundle/DependencyInjection/Configuration.php

+ 30 - 24
src/Symfony/Bundle/MonologBundle/DependencyInjection/Configuration.php

@@ -11,8 +11,8 @@
 
 namespace Symfony\Bundle\MonologBundle\DependencyInjection;
 
-use Symfony\Component\Config\Definition\Builder\NodeBuilder;
 use Symfony\Component\Config\Definition\Builder\TreeBuilder;
+use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
 
 /**
  * This class contains the configuration information for the bundle
@@ -36,45 +36,51 @@ class Configuration
 
         $handlersPrototype = $rootNode
             ->fixXmlConfig('handler')
-            ->arrayNode('handlers')
-                ->canBeUnset()
-                ->performNoDeepMerging()
-                ->useAttributeAsKey('name')
-                ->prototype('array')
-                    ->scalarNode('action_level')->end() // fingerscrossed specific
-                    ->scalarNode('buffer_size')->end() // fingerscrossed specific
-                    ->builder($this->getHandlerSubnode())
-                    ->validate()
-                        ->ifTrue(function($v) { return 'fingerscrossed' === $v['type'] && !isset($v['handler']); })
-                        ->thenInvalid('The handler has to be specified to use a FingersCrossedHandler')
-                    ->end()
+            ->children()
+                ->arrayNode('handlers')
+                    ->canBeUnset()
+                    ->performNoDeepMerging()
+                    ->useAttributeAsKey('name')
+                    ->prototype('array')
+                        ->children()
+                            ->scalarNode('action_level')->end() // fingerscrossed specific
+                            ->scalarNode('buffer_size')->end() // fingerscrossed specific
+                        ->end()
+                        ->append($this->getHandlerSubnode())
+                        ->validate()
+                            ->ifTrue(function($v) { return 'fingerscrossed' === $v['type'] && !isset($v['handler']); })
+                            ->thenInvalid('The handler has to be specified to use a FingersCrossedHandler')
+                        ->end()
         ;
         $this->addHandlerSection($handlersPrototype);
 
         return $treeBuilder->buildTree();
     }
 
-    private function addHandlerSection(NodeBuilder $node)
+    private function addHandlerSection(ArrayNodeDefinition $node)
     {
         $node
             ->performNoDeepMerging()
-            ->scalarNode('type')
-                ->isRequired()
-                ->treatNullLike('null')
-                ->beforeNormalization()
-                    ->always()
-                    ->then(function($v) { return strtolower($v); })
+            ->children()
+                ->scalarNode('type')
+                    ->isRequired()
+                    ->treatNullLike('null')
+                    ->beforeNormalization()
+                        ->always()
+                        ->then(function($v) { return strtolower($v); })
+                    ->end()
                 ->end()
+                ->scalarNode('level')->defaultValue('DEBUG')->end()
+                ->booleanNode('bubble')->defaultFalse()->end()
+                ->scalarNode('path')->end() // stream specific
             ->end()
-            ->scalarNode('level')->defaultValue('DEBUG')->end()
-            ->booleanNode('bubble')->defaultFalse()->end()
-            ->scalarNode('path')->end() // stream specific
         ;
     }
 
     private function getHandlerSubnode()
     {
-        $node = new NodeBuilder('handler', 'array');
+        $builder = new TreeBuilder();
+        $node = $builder->root('handler');
         $this->addHandlerSection($node);
 
         return $node;