[MonologBundle] Updated the Configuration class to the new syntax

This commit is contained in:
Christophe Coevoet 2011-03-17 19:34:59 +01:00
parent 05e73e8e3b
commit 1bb18bf9cc

View File

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