ArrayNodeDefinition
class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinitionInterface
This class provides a fluent interface for defining an array node.
Methods
Sets an attribute on the node.
Sets the equivalent value used when the node contains null.
Sets the equivalent value used when the node contains true.
Sets the equivalent value used when the node contains false.
Sets an expression to run before the normalization.
Sets whether the node can be overwritten.
Returns a builder to add children nodes.
Sets a prototype for child nodes.
Adds the default value if the node is not set in the configuration.
Adds children with a default value when none are defined.
Requires the node to have at least one element.
Disallows adding news keys in a subsequent configuration.
Sets a normalization rule for XML configurations.
Sets the attribute which value is to be used as key.
Sets whether the node can be unset.
Adds an "enabled" boolean to enable the current section.
Adds an "enabled" boolean to enable the current section.
Disables the deep merging of the node.
Allows extra config keys to be specified under an array without throwing an exception.
Sets key normalization.
Details
at line line 42
__construct(string $name, NodeParentInterface $parent = null)
Constructor.
in NodeDefinition at line line 61
NodeDefinition|$this
setParent(NodeParentInterface $parent)
Sets the parent node.
in NodeDefinition at line line 75
NodeDefinition|$this
info(string $info)
Sets info message.
in NodeDefinition at line line 87
NodeDefinition|$this
example(string|array $example)
Sets example configuration.
in NodeDefinition at line line 100
NodeDefinition|$this
attribute(string $key, mixed $value)
Sets an attribute on the node.
in NodeDefinition at line line 112
NodeParentInterface|null
end()
Returns the parent node.
in NodeDefinition at line line 124
NodeInterface
getNode(bool $forceRootNode = false)
Creates the node.
in NodeDefinition at line line 151
NodeDefinition|$this
defaultValue(mixed $value)
Sets the default value.
in NodeDefinition at line line 164
NodeDefinition|$this
isRequired()
Sets the node as required.
in NodeDefinition at line line 178
NodeDefinition|$this
treatNullLike(mixed $value)
Sets the equivalent value used when the node contains null.
in NodeDefinition at line line 192
NodeDefinition|$this
treatTrueLike(mixed $value)
Sets the equivalent value used when the node contains true.
in NodeDefinition at line line 206
NodeDefinition|$this
treatFalseLike(mixed $value)
Sets the equivalent value used when the node contains false.
in NodeDefinition at line line 218
NodeDefinition|$this
defaultNull()
Sets null as the default value.
in NodeDefinition at line line 228
NodeDefinition|$this
defaultTrue()
Sets true as the default value.
in NodeDefinition at line line 238
NodeDefinition|$this
defaultFalse()
Sets false as the default value.
in NodeDefinition at line line 248
ExprBuilder
beforeNormalization()
Sets an expression to run before the normalization.
in NodeDefinition at line line 258
NodeDefinition|$this
cannotBeEmpty()
Denies the node value being empty.
in NodeDefinition at line line 274
ExprBuilder
validate()
Sets an expression to run for the validation.
The expression receives the value of the node and must return it. It can modify it. An exception should be thrown when the node is not valid.
in NodeDefinition at line line 286
NodeDefinition|$this
cannotBeOverwritten(bool $deny = true)
Sets whether the node can be overwritten.
at line line 55
setBuilder(NodeBuilder $builder)
Sets a custom children builder.
at line line 65
children()
Returns a builder to add children nodes.
at line line 77
NodeDefinition
prototype(string $type)
Sets a prototype for child nodes.
at line line 91
ArrayNodeDefinition
addDefaultsIfNotSet()
Adds the default value if the node is not set in the configuration.
This method is applicable to concrete nodes only (not to prototype nodes). If this function has been called and the node is not set during the finalization phase, it's default value will be derived from its children default values.
at line line 107
ArrayNodeDefinition
addDefaultChildrenIfNoneSet(int|string|array|null $children = null)
Adds children with a default value when none are defined.
at line line 121
ArrayNodeDefinition
requiresAtLeastOneElement()
Requires the node to have at least one element.
This method is applicable to prototype nodes only.
at line line 135
ArrayNodeDefinition
disallowNewKeysInSubsequentConfigs()
Disallows adding news keys in a subsequent configuration.
If used all keys have to be defined in the same configuration file.
at line line 150
ArrayNodeDefinition
fixXmlConfig(string $singular, string $plural = null)
Sets a normalization rule for XML configurations.
at line line 185
ArrayNodeDefinition
useAttributeAsKey(string $name, bool $removeKeyItem = true)
Sets the attribute which value is to be used as key.
This is useful when you have an indexed array that should be an associative array. You can select an item from within the array to be the key of the particular item. For example, if "id" is the "key", then:
array(
array('id' => 'my_name', 'foo' => 'bar'),
);
becomes
array(
'my_name' => array('foo' => 'bar'),
);
If you'd like "'id' => 'my_name'" to still be present in the resulting array, then you can set the second argument of this method to false.
This method is applicable to prototype nodes only.
at line line 200
ArrayNodeDefinition
canBeUnset(bool $allow = true)
Sets whether the node can be unset.
at line line 222
ArrayNodeDefinition
canBeEnabled()
Adds an "enabled" boolean to enable the current section.
By default, the section is disabled. If any configuration is specified then the node will be automatically enabled:
enableableArrayNode: {enabled: true, ...} # The config is enabled & default values get overridden enableableArrayNode: ~ # The config is enabled & use the default values enableableArrayNode: true # The config is enabled & use the default values enableableArrayNode: {other: value, ...} # The config is enabled & default values get overridden enableableArrayNode: {enabled: false, ...} # The config is disabled enableableArrayNode: false # The config is disabled
at line line 252
ArrayNodeDefinition
canBeDisabled()
Adds an "enabled" boolean to enable the current section.
By default, the section is enabled.
at line line 272
ArrayNodeDefinition
performNoDeepMerging()
Disables the deep merging of the node.
at line line 292
ArrayNodeDefinition
ignoreExtraKeys(bool $remove = true)
Allows extra config keys to be specified under an array without throwing an exception.
Those config values are simply ignored and removed from the resulting array. This should be used only in special cases where you want to send an entire configuration array through a special tree that processes only part of the array.
at line line 307
ArrayNodeDefinition
normalizeKeys(bool $bool)
Sets key normalization.
at line line 329
append(NodeDefinition $node)
Appends a node definition.
$node = new ArrayNodeDefinition() ->children() ->scalarNode('foo')->end() ->scalarNode('baz')->end() ->end() ->append($this->getBarNodeDefinition()) ;