PrototypedArrayNode
class PrototypedArrayNode extends ArrayNode
Represents a prototyped Array node in the config tree.
Constants
| DEFAULT_PATH_SEPARATOR |
Properties
| protected | $name | from BaseNode | |
| protected | $parent | from BaseNode | |
| protected | $normalizationClosures | from BaseNode | |
| protected | $finalValidationClosures | from BaseNode | |
| protected | $allowOverwrite | from BaseNode | |
| protected | $required | from BaseNode | |
| protected | $deprecationMessage | from BaseNode | |
| protected | $equivalentValues | from BaseNode | |
| protected | $attributes | from BaseNode | |
| protected | $pathSeparator | from BaseNode | |
| protected | $xmlRemappings | from ArrayNode | |
| protected | $children | from ArrayNode | |
| protected | $allowFalse | from ArrayNode | |
| protected | $allowNewKeys | from ArrayNode | |
| protected | $addIfNotSet | from ArrayNode | |
| protected | $performDeepMerging | from ArrayNode | |
| protected | $ignoreExtraKeys | from ArrayNode | |
| protected | $removeExtraKeys | from ArrayNode | |
| protected | $normalizeKeys | from ArrayNode | |
| protected | $prototype | ||
| protected | $keyAttribute | ||
| protected | $removeKeyAttribute | ||
| protected | $minNumberOfElements | ||
| protected | $defaultValue | ||
| protected | $defaultChildren |
Methods
| __construct(string|null $name, NodeInterface $parent = null, string $pathSeparator = self::DEFAULT_PATH_SEPARATOR) | from BaseNode | |
| static void | setPlaceholder(string $placeholder, array $values) Register possible (dummy) values for a dynamic placeholder value. | from BaseNode |
| static void | setPlaceholderUniquePrefix(string $prefix) Sets a common prefix for dynamic placeholder values. | from BaseNode |
| static void | resetPlaceholders() Resets all current placeholders available. | from BaseNode |
| setAttribute($key, $value) | from BaseNode | |
| getAttribute($key, $default = null) | from BaseNode | |
| hasAttribute($key) | from BaseNode | |
| getAttributes() | from BaseNode | |
| setAttributes(array $attributes) | from BaseNode | |
| removeAttribute($key) | from BaseNode | |
| setInfo(string $info) Sets an info message. | from BaseNode | |
| string | getInfo() Returns info message. | from BaseNode |
| setExample(string|array $example) Sets the example configuration for this node. | from BaseNode | |
| string|array | getExample() Retrieves the example configuration for this node. | from BaseNode |
| addEquivalentValue(mixed $originalValue, mixed $equivalentValue) Adds an equivalent value. | from BaseNode | |
| setRequired(bool $boolean) Set this node as required. | from BaseNode | |
| setDeprecated(string|null $message) Sets this node as deprecated. | from BaseNode | |
| setAllowOverwrite(bool $allow) Sets if this node can be overridden. | from BaseNode | |
| setNormalizationClosures(array $closures) Sets the closures used for normalization. | from BaseNode | |
| setFinalValidationClosures(array $closures) Sets the closures used for final validation. | from BaseNode | |
| bool | isRequired() Returns true when the node is required. | from BaseNode |
| bool | isDeprecated() Checks if this node is deprecated. | from BaseNode |
| string | getDeprecationMessage(string $node, string $path) Returns the deprecated message. | from BaseNode |
| string | getName() Returns the name of the node. | from BaseNode |
| string | getPath() Returns the path of the node. | from BaseNode |
| mixed | merge(mixed $leftSide, mixed $rightSide) Merges two values together. | from BaseNode |
| mixed | normalize(mixed $value) Normalizes a value. | from BaseNode |
| $value | preNormalize($value) Normalizes keys between the different configuration formats. | from ArrayNode |
| NodeInterface|null | getParent() Returns parent node for this node. | from BaseNode |
| mixed | finalize(mixed $value) Finalizes a value. | from BaseNode |
| validateType(mixed $value) Validates the type of the value. | from ArrayNode | |
| mixed | normalizeValue(mixed $value) Normalizes the value. | |
| mixed | mergeValues(mixed $leftSide, mixed $rightSide) Merges values together. | |
| mixed | finalizeValue(mixed $value) Finalizes the value of this node. | |
| bool | allowPlaceholders() Tests if placeholder values are allowed for this node. | from ArrayNode |
| bool | isHandlingPlaceholder() Tests if a placeholder is being handled currently. | from BaseNode |
| array | getValidPlaceholderTypes() Gets allowed dynamic types for this node. | from BaseNode |
| setNormalizeKeys($normalizeKeys) | from ArrayNode | |
| array | getChildren() Retrieves the children of this node. | from ArrayNode |
| setXmlRemappings(array $remappings) Sets the xml remappings that should be performed. | from ArrayNode | |
| array | getXmlRemappings() Gets the xml remappings that should be performed. | from ArrayNode |
| setAddIfNotSet(bool $boolean) Sets whether to add default values for this array if it has not been defined in any of the configuration files. | from ArrayNode | |
| setAllowFalse(bool $allow) Sets whether false is allowed as value indicating that the array should be unset. | from ArrayNode | |
| setAllowNewKeys(bool $allow) Sets whether new keys can be defined in subsequent configurations. | from ArrayNode | |
| setPerformDeepMerging(bool $boolean) Sets if deep merging should occur. | from ArrayNode | |
| setIgnoreExtraKeys(bool $boolean, bool $remove = true) Whether extra keys should just be ignore without an exception. | from ArrayNode | |
| setName(string $name) Sets the name of the node. | from ArrayNode | |
| bool | hasDefaultValue() Returns true when the node has a default value. | |
| mixed | getDefaultValue() Returns the default value of the node. | |
| addChild(NodeInterface $node) Disable adding concrete children for prototyped nodes. | ||
| array | remapXml(array $value) Remaps multiple singular values to a single plural value. | from ArrayNode |
| setMinNumberOfElements(int $number) Sets the minimum number of elements that a prototype based node must contain. By default this is zero, meaning no elements. | ||
| setKeyAttribute(string $attribute, bool $remove = true) Sets the attribute which value is to be used as key. | ||
| string | getKeyAttribute() Retrieves the name of the attribute which value should be used as key. | |
| setDefaultValue(string $value) Sets the default value of this node. | ||
| setAddChildrenIfNoneSet(int|string|array|null $children = array('defaults')) Adds default children when none are set. | ||
| setPrototype(PrototypeNodeInterface $node) Sets the node prototype. | ||
| PrototypeNodeInterface | getPrototype() Retrieves the prototype. |
Details
__construct(string|null $name, NodeInterface $parent = null, string $pathSeparator = self::DEFAULT_PATH_SEPARATOR)
Parameters
| string|null | $name | |
| NodeInterface | $parent | |
| string | $pathSeparator |
Exceptions
| InvalidArgumentException | if the name contains a period |
static void setPlaceholder(string $placeholder, array $values)
Register possible (dummy) values for a dynamic placeholder value.
Matching configuration values will be processed with a provided value, one by one. After a provided value is successfully processed the configuration value is returned as is, thus preserving the placeholder.
Parameters
| string | $placeholder | |
| array | $values |
Return Value
| void |
static void setPlaceholderUniquePrefix(string $prefix)
Sets a common prefix for dynamic placeholder values.
Matching configuration values will be skipped from being processed and are returned as is, thus preserving the placeholder. An exact match provided by {see setPlaceholder()} might take precedence.
Parameters
| string | $prefix |
Return Value
| void |
static void resetPlaceholders()
Resets all current placeholders available.
Return Value
| void |
setAttribute($key, $value)
Parameters
| $key | ||
| $value |
getAttribute($key, $default = null)
Parameters
| $key | ||
| $default |
hasAttribute($key)
Parameters
| $key |
getAttributes()
setAttributes(array $attributes)
Parameters
| array | $attributes |
removeAttribute($key)
Parameters
| $key |
setInfo(string $info)
Sets an info message.
Parameters
| string | $info |
string getInfo()
Returns info message.
Return Value
| string | The info text |
setExample(string|array $example)
Sets the example configuration for this node.
Parameters
| string|array | $example |
string|array getExample()
Retrieves the example configuration for this node.
Return Value
| string|array | The example |
addEquivalentValue(mixed $originalValue, mixed $equivalentValue)
Adds an equivalent value.
Parameters
| mixed | $originalValue | |
| mixed | $equivalentValue |
setRequired(bool $boolean)
Set this node as required.
Parameters
| bool | $boolean | Required node |
setDeprecated(string|null $message)
Sets this 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|null | $message | Deprecated message |
setAllowOverwrite(bool $allow)
Sets if this node can be overridden.
Parameters
| bool | $allow |
setNormalizationClosures(array $closures)
Sets the closures used for normalization.
Parameters
| array | $closures | An array of Closures used for normalization |
setFinalValidationClosures(array $closures)
Sets the closures used for final validation.
Parameters
| array | $closures | An array of Closures used for final validation |
bool isRequired()
Returns true when the node is required.
Return Value
| bool | If the node is required |
bool isDeprecated()
Checks if this node is deprecated.
Return Value
| bool |
string getDeprecationMessage(string $node, string $path)
Returns the deprecated message.
Parameters
| string | $node | the configuration node name |
| string | $path | the path of the node |
Return Value
| string |
string getName()
Returns the name of the node.
Return Value
| string | The name of the node |
string getPath()
Returns the path of the node.
Return Value
| string | The node path |
final mixed merge(mixed $leftSide, mixed $rightSide)
Merges two values together.
Parameters
| mixed | $leftSide | |
| mixed | $rightSide |
Return Value
| mixed | The merged value |
Exceptions
| ForbiddenOverwriteException | if the configuration path cannot be overwritten |
| InvalidTypeException | if the value type is invalid |
final mixed normalize(mixed $value)
Normalizes a value.
Parameters
| mixed | $value | The value to normalize |
Return Value
| mixed | The normalized value |
Exceptions
| InvalidTypeException | if the value type is invalid |
protected $value preNormalize($value)
Normalizes keys between the different configuration formats.
Namely, you mostly have foo_bar in YAML while you have foo-bar in XML. After running this method, all keys are normalized to foo_bar.
If you have a mixed key like foo-bar_moo, it will not be altered. The key will also not be altered if the target key already exists.
Parameters
| $value |
Return Value
| $value | The normalized array value |
NodeInterface|null getParent()
Returns parent node for this node.
Return Value
| NodeInterface|null |
final mixed finalize(mixed $value)
Finalizes a value.
Parameters
| mixed | $value | The value to finalize |
Return Value
| mixed | The finalized value |
Exceptions
| InvalidTypeException | if the value type is invalid |
| InvalidConfigurationException | if the value is invalid configuration |
protected validateType(mixed $value)
Validates the type of the value.
Parameters
| mixed | $value | The value to validate |
Exceptions
| InvalidTypeException |
protected mixed normalizeValue(mixed $value)
Normalizes the value.
Parameters
| mixed | $value | The value to normalize |
Return Value
| mixed | The normalized value |
Exceptions
| InvalidConfigurationException | |
| DuplicateKeyException |
protected mixed mergeValues(mixed $leftSide, mixed $rightSide)
Merges values together.
Parameters
| mixed | $leftSide | |
| mixed | $rightSide |
Return Value
| mixed | The merged value |
Exceptions
| InvalidConfigurationException | |
| RuntimeException |
protected mixed finalizeValue(mixed $value)
Finalizes the value of this node.
Parameters
| mixed | $value | The value to finalize |
Return Value
| mixed | The finalized value |
Exceptions
| UnsetKeyException | |
| InvalidConfigurationException | if the node doesn't have enough children |
protected bool allowPlaceholders()
Tests if placeholder values are allowed for this node.
Return Value
| bool |
protected bool isHandlingPlaceholder()
Tests if a placeholder is being handled currently.
Return Value
| bool |
protected array getValidPlaceholderTypes()
Gets allowed dynamic types for this node.
Return Value
| array |
setNormalizeKeys($normalizeKeys)
Parameters
| $normalizeKeys |
array getChildren()
Retrieves the children of this node.
Return Value
| array | The children |
setXmlRemappings(array $remappings)
Sets the xml remappings that should be performed.
Parameters
| array | $remappings | An array of the form array(array(string, string)) |
array getXmlRemappings()
Gets the xml remappings that should be performed.
Return Value
| array | $remappings an array of the form array(array(string, string)) |
setAddIfNotSet(bool $boolean)
Sets whether to add default values for this array if it has not been defined in any of the configuration files.
Parameters
| bool | $boolean |
setAllowFalse(bool $allow)
Sets whether false is allowed as value indicating that the array should be unset.
Parameters
| bool | $allow |
setAllowNewKeys(bool $allow)
Sets whether new keys can be defined in subsequent configurations.
Parameters
| bool | $allow |
setPerformDeepMerging(bool $boolean)
Sets if deep merging should occur.
Parameters
| bool | $boolean |
setIgnoreExtraKeys(bool $boolean, bool $remove = true)
Whether extra keys should just be ignore without an exception.
Parameters
| bool | $boolean | To allow extra keys |
| bool | $remove | To remove extra keys |
setName(string $name)
Sets the name of the node.
Parameters
| string | $name | The name of the node |
bool hasDefaultValue()
Returns true when the node has a default value.
Return Value
| bool | If the node has a default value |
mixed getDefaultValue()
Returns the default value of the node.
Return Value
| mixed | The default value |
Exceptions
| RuntimeException | if the node has no default value |
addChild(NodeInterface $node)
Disable adding concrete children for prototyped nodes.
Parameters
| NodeInterface | $node |
Exceptions
| Exception |
protected array remapXml(array $value)
Remaps multiple singular values to a single plural value.
Parameters
| array | $value | The source values |
Return Value
| array | The remapped values |
setMinNumberOfElements(int $number)
Sets the minimum number of elements that a prototype based node must contain. By default this is zero, meaning no elements.
Parameters
| int | $number |
setKeyAttribute(string $attribute, bool $remove = 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.
Parameters
| string | $attribute | The name of the attribute which value is to be used as a key |
| bool | $remove | Whether or not to remove the key |
string getKeyAttribute()
Retrieves the name of the attribute which value should be used as key.
Return Value
| string | The name of the attribute |
setDefaultValue(string $value)
Sets the default value of this node.
Parameters
| string | $value |
Exceptions
| InvalidArgumentException | if the default value is not an array |
setAddChildrenIfNoneSet(int|string|array|null $children = array('defaults'))
Adds default children when none are set.
Parameters
| int|string|array|null | $children | The number of children|The child name|The children names to be added |
setPrototype(PrototypeNodeInterface $node)
Sets the node prototype.
Parameters
| PrototypeNodeInterface | $node |
PrototypeNodeInterface getPrototype()
Retrieves the prototype.
Return Value
| PrototypeNodeInterface | The prototype |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/Config/Definition/PrototypedArrayNode.html