ArrayNodeDefinition
class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinitionInterface
This class provides a fluent interface for defining an array node.
Methods
| __construct(string $name, NodeParentInterface $parent = null) | ||
| $this | setParent(NodeParentInterface $parent) Sets the parent node. | from NodeDefinition |
| $this | info(string $info) Sets info message. | from NodeDefinition |
| $this | example(string|array $example) Sets example configuration. | from NodeDefinition |
| $this | attribute(string $key, mixed $value) Sets an attribute on the node. | from NodeDefinition |
| NodeParentInterface|NodeBuilder|NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition|null | end() Returns the parent node. | from NodeDefinition |
| NodeInterface | getNode(bool $forceRootNode = false) Creates the node. | from NodeDefinition |
| $this | defaultValue(mixed $value) Sets the default value. | from NodeDefinition |
| $this | isRequired() Sets the node as required. | from NodeDefinition |
| $this | setDeprecated(string $message = 'The child node "%node%" at path "%path%" is deprecated.') Sets the node as deprecated. | from NodeDefinition |
| $this | treatNullLike(mixed $value) Sets the equivalent value used when the node contains null. | from NodeDefinition |
| $this | treatTrueLike(mixed $value) Sets the equivalent value used when the node contains true. | from NodeDefinition |
| $this | treatFalseLike(mixed $value) Sets the equivalent value used when the node contains false. | from NodeDefinition |
| $this | defaultNull() Sets null as the default value. | from NodeDefinition |
| $this | defaultTrue() Sets true as the default value. | from NodeDefinition |
| $this | defaultFalse() Sets false as the default value. | from NodeDefinition |
| ExprBuilder | beforeNormalization() Sets an expression to run before the normalization. | from NodeDefinition |
| $this | cannotBeEmpty() Denies the node value being empty. | from NodeDefinition |
| ExprBuilder | validate() Sets an expression to run for the validation. | from NodeDefinition |
| $this | cannotBeOverwritten(bool $deny = true) Sets whether the node can be overwritten. | from NodeDefinition |
| setBuilder(NodeBuilder $builder) Sets a custom children builder. | ||
| children() Returns a builder to add children nodes. | ||
| NodeDefinition | prototype(string $type) Sets a prototype for child nodes. | |
| VariableNodeDefinition | variablePrototype() | |
| ScalarNodeDefinition | scalarPrototype() | |
| BooleanNodeDefinition | booleanPrototype() | |
| IntegerNodeDefinition | integerPrototype() | |
| FloatNodeDefinition | floatPrototype() | |
| ArrayNodeDefinition | arrayPrototype() | |
| EnumNodeDefinition | enumPrototype() | |
| $this | addDefaultsIfNotSet() Adds the default value if the node is not set in the configuration. | |
| $this | addDefaultChildrenIfNoneSet(int|string|array|null $children = null) Adds children with a default value when none are defined. | |
| $this | requiresAtLeastOneElement() Requires the node to have at least one element. | |
| $this | disallowNewKeysInSubsequentConfigs() Disallows adding news keys in a subsequent configuration. | |
| $this | fixXmlConfig(string $singular, string $plural = null) Sets a normalization rule for XML configurations. | |
| $this | useAttributeAsKey(string $name, bool $removeKeyItem = true) Sets the attribute which value is to be used as key. | |
| $this | canBeUnset(bool $allow = true) Sets whether the node can be unset. | |
| $this | canBeEnabled() Adds an "enabled" boolean to enable the current section. | |
| $this | canBeDisabled() Adds an "enabled" boolean to enable the current section. | |
| $this | performNoDeepMerging() Disables the deep merging of the node. | |
| $this | ignoreExtraKeys(bool $remove = true) Allows extra config keys to be specified under an array without throwing an exception. | |
| $this | normalizeKeys(bool $bool) Sets key normalization. | |
| append(NodeDefinition $node) Appends a node definition. |
Details
__construct(string $name, NodeParentInterface $parent = null)
Parameters
| string | $name | The name of the node |
| NodeParentInterface | $parent | The parent |
$this setParent(NodeParentInterface $parent)
Sets the parent node.
Parameters
| NodeParentInterface | $parent |
Return Value
| $this |
$this info(string $info)
Sets info message.
Parameters
| string | $info | The info text |
Return Value
| $this |
$this example(string|array $example)
Sets example configuration.
Parameters
| string|array | $example |
Return Value
| $this |
$this attribute(string $key, mixed $value)
Sets an attribute on the node.
Parameters
| string | $key | |
| mixed | $value |
Return Value
| $this |
NodeParentInterface|NodeBuilder|NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition|null end()
Returns the parent node.
Return Value
| NodeParentInterface|NodeBuilder|NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition|null | The builder of the parent node |
NodeInterface getNode(bool $forceRootNode = false)
Creates the node.
Parameters
| bool | $forceRootNode | Whether to force this node as the root node |
Return Value
| NodeInterface |
$this defaultValue(mixed $value)
Sets the default value.
Parameters
| mixed | $value | The default value |
Return Value
| $this |
$this isRequired()
Sets the node as required.
Return Value
| $this |
$this setDeprecated(string $message = 'The child node "%node%" at path "%path%" is deprecated.')
Sets the node as deprecated.
You can use %node% and %path% placeholders in your message to display, respectively, the node name and its complete path.
Parameters
| string | $message | Deprecation message |
Return Value
| $this |
$this treatNullLike(mixed $value)
Sets the equivalent value used when the node contains null.
Parameters
| mixed | $value |
Return Value
| $this |
$this treatTrueLike(mixed $value)
Sets the equivalent value used when the node contains true.
Parameters
| mixed | $value |
Return Value
| $this |
$this treatFalseLike(mixed $value)
Sets the equivalent value used when the node contains false.
Parameters
| mixed | $value |
Return Value
| $this |
$this defaultNull()
Sets null as the default value.
Return Value
| $this |
$this defaultTrue()
Sets true as the default value.
Return Value
| $this |
$this defaultFalse()
Sets false as the default value.
Return Value
| $this |
ExprBuilder beforeNormalization()
Sets an expression to run before the normalization.
Return Value
| ExprBuilder |
$this cannotBeEmpty()
Denies the node value being empty.
Return Value
| $this |
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.
Return Value
| ExprBuilder |
$this cannotBeOverwritten(bool $deny = true)
Sets whether the node can be overwritten.
Parameters
| bool | $deny | Whether the overwriting is forbidden or not |
Return Value
| $this |
setBuilder(NodeBuilder $builder)
Sets a custom children builder.
Parameters
| NodeBuilder | $builder |
children()
Returns a builder to add children nodes.
NodeDefinition prototype(string $type)
Sets a prototype for child nodes.
Parameters
| string | $type | The type of node |
Return Value
| NodeDefinition |
VariableNodeDefinition variablePrototype()
Return Value
| VariableNodeDefinition |
ScalarNodeDefinition scalarPrototype()
Return Value
| ScalarNodeDefinition |
BooleanNodeDefinition booleanPrototype()
Return Value
| BooleanNodeDefinition |
IntegerNodeDefinition integerPrototype()
Return Value
| IntegerNodeDefinition |
FloatNodeDefinition floatPrototype()
Return Value
| FloatNodeDefinition |
ArrayNodeDefinition arrayPrototype()
Return Value
| ArrayNodeDefinition |
EnumNodeDefinition enumPrototype()
Return Value
| EnumNodeDefinition |
$this 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.
Return Value
| $this |
$this addDefaultChildrenIfNoneSet(int|string|array|null $children = null)
Adds children with a default value when none are defined.
This method is applicable to prototype nodes only.
Parameters
| int|string|array|null | $children | The number of children|The child name|The children names to be added |
Return Value
| $this |
$this requiresAtLeastOneElement()
Requires the node to have at least one element.
This method is applicable to prototype nodes only.
Return Value
| $this |
$this disallowNewKeysInSubsequentConfigs()
Disallows adding news keys in a subsequent configuration.
If used all keys have to be defined in the same configuration file.
Return Value
| $this |
$this fixXmlConfig(string $singular, string $plural = null)
Sets a normalization rule for XML configurations.
Parameters
| string | $singular | The key to remap |
| string | $plural | The plural of the key for irregular plurals |
Return Value
| $this |
$this 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.
Parameters
| string | $name | The name of the key |
| bool | $removeKeyItem | Whether or not the key item should be removed |
Return Value
| $this |
$this canBeUnset(bool $allow = true)
Sets whether the node can be unset.
Parameters
| bool | $allow |
Return Value
| $this |
$this 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
Return Value
| $this |
$this canBeDisabled()
Adds an "enabled" boolean to enable the current section.
By default, the section is enabled.
Return Value
| $this |
$this performNoDeepMerging()
Disables the deep merging of the node.
Return Value
| $this |
$this 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.
Parameters
| bool | $remove | Whether to remove the extra keys |
Return Value
| $this |
$this normalizeKeys(bool $bool)
Sets key normalization.
Parameters
| bool | $bool | Whether to enable key normalization |
Return Value
| $this |
append(NodeDefinition $node)
Appends a node definition.
$node = new ArrayNodeDefinition() ->children() ->scalarNode('foo')->end() ->scalarNode('baz')->end() ->end() ->append($this->getBarNodeDefinition()) ;
Parameters
| NodeDefinition | $node |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.4/Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.html