Skip to content

Commit ca65d92

Browse files
authored
Fix config split (loss of validation part)
1 parent b8291cc commit ca65d92

File tree

1 file changed

+39
-37
lines changed

1 file changed

+39
-37
lines changed

DependencyInjection/Configuration.php

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ public function getConfigTreeBuilder()
356356
$treeBuilder = new TreeBuilder('monolog');
357357
$rootNode = method_exists(TreeBuilder::class, 'getRootNode') ? $treeBuilder->getRootNode() : $treeBuilder->root('monolog');
358358

359-
$handlerNode = $rootNode
359+
$handlers = $rootNode
360360
->fixXmlConfig('channel')
361361
->fixXmlConfig('handler')
362362
->children()
@@ -365,17 +365,44 @@ public function getConfigTreeBuilder()
365365
->canBeUnset()
366366
->prototype('scalar')->end()
367367
->end()
368-
->arrayNode('handlers')
369-
->canBeUnset()
370-
->useAttributeAsKey('name')
371-
->prototype('array')
372-
->fixXmlConfig('member')
373-
->fixXmlConfig('excluded_404')
374-
->fixXmlConfig('excluded_http_code')
375-
->fixXmlConfig('tag')
376-
->fixXmlConfig('accepted_level')
377-
->fixXmlConfig('header')
378-
->canBeUnset();
368+
->arrayNode('handlers');
369+
370+
$handlers
371+
->canBeUnset()
372+
->useAttributeAsKey('name')
373+
->validate()
374+
->ifTrue(function ($v) { return isset($v['debug']); })
375+
->thenInvalid('The "debug" name cannot be used as it is reserved for the handler of the profiler')
376+
->end()
377+
->example([
378+
'syslog' => [
379+
'type' => 'stream',
380+
'path' => '/var/log/symfony.log',
381+
'level' => 'ERROR',
382+
'bubble' => 'false',
383+
'formatter' => 'my_formatter',
384+
],
385+
'main' => [
386+
'type' => 'fingers_crossed',
387+
'action_level' => 'WARNING',
388+
'buffer_size' => 30,
389+
'handler' => 'custom',
390+
],
391+
'custom' => [
392+
'type' => 'service',
393+
'id' => 'my_handler',
394+
]
395+
]);
396+
397+
$handlerNode = $handlers
398+
->prototype('array')
399+
->fixXmlConfig('member')
400+
->fixXmlConfig('excluded_404')
401+
->fixXmlConfig('excluded_http_code')
402+
->fixXmlConfig('tag')
403+
->fixXmlConfig('accepted_level')
404+
->fixXmlConfig('header')
405+
->canBeUnset();
379406

380407
$handlerNode
381408
->children()
@@ -712,32 +739,7 @@ public function getConfigTreeBuilder()
712739
->validate()
713740
->ifTrue(function ($v) { return 'server_log' === $v['type'] && empty($v['host']); })
714741
->thenInvalid('The host has to be specified to use a ServerLogHandler')
715-
->end();
716-
717-
$rootNode
718-
->validate()
719-
->ifTrue(function ($v) { return isset($v['debug']); })
720-
->thenInvalid('The "debug" name cannot be used as it is reserved for the handler of the profiler')
721742
->end()
722-
->example([
723-
'syslog' => [
724-
'type' => 'stream',
725-
'path' => '/var/log/symfony.log',
726-
'level' => 'ERROR',
727-
'bubble' => 'false',
728-
'formatter' => 'my_formatter',
729-
],
730-
'main' => [
731-
'type' => 'fingers_crossed',
732-
'action_level' => 'WARNING',
733-
'buffer_size' => 30,
734-
'handler' => 'custom',
735-
],
736-
'custom' => [
737-
'type' => 'service',
738-
'id' => 'my_handler',
739-
]
740-
])
741743
;
742744

743745
return $treeBuilder;

0 commit comments

Comments
 (0)