ArrayNodeDefinition
class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinitionInterface
This class provides a fluent interface for defining an array node.
Properties
protected | $name | from NodeDefinition | |
protected | $normalization | from NodeDefinition | |
protected | $validation | from NodeDefinition | |
protected | $defaultValue | from NodeDefinition | |
protected | $default | from NodeDefinition | |
protected | $required | from NodeDefinition | |
protected | $deprecationMessage | from NodeDefinition | |
protected | $merge | from NodeDefinition | |
protected | $allowEmptyValue | from NodeDefinition | |
protected | $nullEquivalent | from NodeDefinition | |
protected | $trueEquivalent | from NodeDefinition | |
protected | $falseEquivalent | from NodeDefinition | |
protected | $pathSeparator | from NodeDefinition | |
protected | $parent | from NodeDefinition | |
protected | $attributes | from NodeDefinition | |
protected | $performDeepMerging | ||
protected | $ignoreExtraKeys | ||
protected | $removeExtraKeys | ||
protected | $children | ||
protected | $prototype | ||
protected | $atLeastOne | ||
protected | $allowNewKeys | ||
protected | $key | ||
protected | $removeKeyItem | ||
protected | $addDefaults | ||
protected | $addDefaultChildren | ||
protected | $nodeBuilder | ||
protected | $normalizeKeys |
Methods
Returns the parent node.
Sets the node as deprecated.
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.
Instantiate and configure the node according to this definition.
Returns a builder to add children nodes.
Sets a prototype for child nodes.
No description
No description
No description
No description
No description
No description
No description
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.
Returns a node builder to be used to add children and prototype.
No description
Details
NodeParentInterface|NodeBuilder|NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition|null
end()
Returns the parent node.
$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.
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.
protected NodeInterface
createNode()
Instantiate and configure the node according to this definition.
$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.
$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.
$this
requiresAtLeastOneElement()
Requires the node to have at least one element.
This method is applicable to prototype nodes only.
$this
disallowNewKeysInSubsequentConfigs()
Disallows adding news keys in a subsequent configuration.
If used all keys have to be defined in the same configuration file.
$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 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.
$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
$this
canBeDisabled()
Adds an "enabled" boolean to enable the current section.
By default, the section is enabled.
$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.
$this
append(NodeDefinition $node)
Appends a node definition.
Usage:
$node = $parentNode
->children()
->scalarNode('foo')->end()
->scalarNode('baz')->end()
->append($this->getBarNodeDefinition())
->end()
;
protected NodeBuilder
getNodeBuilder()
Returns a node builder to be used to add children and prototype.
protected
validatePrototypeNode(PrototypedArrayNode $node)
Validate the configuration of a prototype node.