8000 adds two convenience methods for optional configuration sections · s7ntech/symfony@0187a1a · GitHub
[go: up one dir, main page]

Skip to content

Commit 0187a1a

Browse files
committed
adds two convenience methods for optional configuration sections
1 parent 6463c99 commit 0187a1a

File tree

2 files changed

+34
-26
lines changed

2 files changed

+34
-26
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -88,19 +88,11 @@ private function addFormSection(ArrayNodeDefinition $rootNode)
8888
->children()
8989
->arrayNode('form')
9090
->info('form configuration')
91-
->canBeUnset()
92-
->treatNullLike(array('enabled' => true))
93-
->treatTrueLike(array('enabled' => true))
94-
->children()
95-
->booleanNode('enabled')->defaultTrue()->end()
96-
->end()
91+
->canBeDisabled()
9792
->end()
9893
->arrayNode('csrf_protection')
99-
->canBeUnset()
100-
->treatNullLike(array('enabled' => true))
101-
->treatTrueLike(array('enabled' => true))
94+
->canBeDisabled()
10295
->children()
103-
->booleanNode('enabled')->defaultTrue()->end()
10496
->scalarNode('field_name')->defaultValue('_token')->end()
10597
->end()
10698
->end()
@@ -114,12 +106,7 @@ private function addEsiSection(ArrayNodeDefinition $rootNode)
114106
->children()
115107
->arrayNode('esi')
116108
->info('esi configuration')
117-
->canBeUnset()
118-
->treatNullLike(array('enabled' => true))
119-
->treatTrueLike(array('enabled' => true))
120-
->children()
121-
->booleanNode('enabled')->defaultTrue()->end()
122-
->end()
109+
->canBeDisabled()
123110
->end()
124111
->end()
125112
;
@@ -131,11 +118,10 @@ private function addProfilerSection(ArrayNodeDefinition $rootNode)
131118
->children()
132119
->arrayNode('profiler')
133120
->info('profiler configuration')
134-
->canBeUnset()
121+
->canBeDisabled()
135122
->children()
136123
->booleanNode('only_exceptions')->defaultFalse()->end()
137124
->booleanNode('only_master_requests')->defaultFalse()->end()
138-
->booleanNode('enabled')->defaultTrue()->end()
139125
->scalarNode('dsn')->defaultValue('file:%kernel.cache_dir%/profiler')->end()
140126
->scalarNode('username')->defaultValue('')->end()
141127
->scalarNode('password')->defaultValue('')->end()
@@ -363,11 +349,8 @@ private function addTranslatorSection(ArrayNodeDefinition $rootNode)
363349
->children()
364350
->arrayNode('translator')
365351
->info('translator configuration')
366-
->canBeUnset()
367-
->treatNullLike(array('enabled' => true))
368-
->treatTrueLike(array('enabled' => true))
352+
->canBeDisabled()
369353
->children()
370-
->booleanNode('enabled')->defaultTrue()->end()
371354
->scalarNode('fallback')->defaultValue('en')->end()
372355
->end()
373356
->end()
@@ -381,11 +364,8 @@ private function addValidationSection(ArrayNodeDefinition $rootNode)
381364
->children()
382365
->arrayNode('validation')
383366
->info('validation configuration')
384-
->canBeUnset()
385-
->treatNullLike(array('enabled' => true))
386-
->treatTrueLike(array('enabled' => true))
367+
->canBeDisabled()
387368
->children()
388-
->booleanNode('enabled')->defaultTrue()->end()
389369
->scalarNode('cache')->end()
390370
->booleanNode('enable_annotations')->defaultFalse()->end()
391371
->end()

src/Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,34 @@ public function canBeUnset($allow = true)
209209
return $this;
210210
}
211211

212+
public function canBeEnabled()
213+
{
214+
$this
215+
->treatFalseLike(array('enabled' => false))
216+
->treatTrueLike(array('enabled' => true))
217+
->treatNullLike(array('enabled' => true))
218+
->children()
219+
->booleanNode('enabled')
220+
->defaultFalse()
221+
;
222+
223+
return $this;
224+
}
225+
226+
public function canBeDisabled()
227+
{
228+
$this
229+
->treatFalseLike(array('enabled' => false))
230+
->treatTrueLike(array('enabled' => true))
231+
->treatNullLike(array('enabled' => true))
232+
->children()
233+
->booleanNode('enabled')
234+
->defaultTrue()
235+
;
236+
237+
return $this;
238+
}
239+
212240
/**
213241
* Disables the deep merging of the node.
214242
*

0 commit comments

Comments
 (0)
0