ArrayNodeDefinition
class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinitionInterface
Этот класс предоставляет удобный интерфейс для определения узла массива.
Свойства
| protected | $name | из NodeDefinition | |
| protected | $normalization | из NodeDefinition | |
| protected | $validation | из NodeDefinition | |
| protected | $defaultValue | из NodeDefinition | |
| protected | $default | из NodeDefinition | |
| protected | $required | из NodeDefinition | |
| protected | $deprecationMessage | из NodeDefinition | |
| protected | $merge | из NodeDefinition | |
| protected | $allowEmptyValue | из NodeDefinition | |
| protected | $nullEquivalent | из NodeDefinition | |
| protected | $trueEquivalent | из NodeDefinition | |
| protected | $falseEquivalent | из NodeDefinition | |
| protected | $pathSeparator | из NodeDefinition | |
| protected | $parent | из NodeDefinition | |
| protected | $attributes | из 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 |
Методы
| __construct(string|null $name, NodeParentInterface $parent = null) | ||
| $this | setParent(NodeParentInterface $parent) Устанавливает родительский узел. | from NodeDefinition |
| $this | info(string $info) Устанавливает сообщение информации. | from NodeDefinition |
| $this | example(string|array $example) Устанавливает пример конфигурации. | from NodeDefinition |
| $this | attribute(string $key, mixed $value) Устанавливает атрибут узла. | from NodeDefinition |
| NodeParentInterface|NodeBuilder|NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition|null | end() Возвращает родительский узел. | from NodeDefinition |
| NodeInterface | getNode(bool $forceRootNode = false) Создаёт узел. | from NodeDefinition |
| $this | defaultValue(mixed $value) Устанавливает значение по умолчанию. | from NodeDefinition |
| $this | isRequired() Устанавливает узел как обязательный. | from NodeDefinition |
| $this | setDeprecated(string $message = 'The child node "%node%" at path "%path%" is deprecated.') Устанавливает узел как устаревший. | from NodeDefinition |
| $this | treatNullLike(mixed $value) Устанавливает эквивалентное значение, используемое, когда узел содержит null. | from NodeDefinition |
| $this | treatTrueLike(mixed $value) Устанавливает эквивалентное значение, используемое, когда узел содержит true. | from NodeDefinition |
| $this | treatFalseLike(mixed $value) Устанавливает эквивалентное значение, используемое, когда узел содержит false. | from NodeDefinition |
| $this | defaultNull() Устанавливает null в качестве значения по умолчанию. | from NodeDefinition |
| $this | defaultTrue() Устанавливает true в качестве значения по умолчанию. | from NodeDefinition |
| $this | defaultFalse() Устанавливает false в качестве значения по умолчанию. | from NodeDefinition |
| ExprBuilder | beforeNormalization() Устанавливает выражение, которое выполняется перед нормализацией. | from NodeDefinition |
| $this | cannotBeEmpty() Запрещает значение узла быть пустым. | from NodeDefinition |
| ExprBuilder | validate() Устанавливает выражение, выполняемое для проверки. | from NodeDefinition |
| $this | cannotBeOverwritten(bool $deny = true) Устанавливает, может ли узел быть перезаписан. | from NodeDefinition |
| ValidationBuilder | validation() Получает конструктор для правил проверки. | from NodeDefinition |
| MergeBuilder | merge() Получает конструктор для правил слияния. | from NodeDefinition |
| NormalizationBuilder | normalization() Получает конструктор для правил нормализации. | from NodeDefinition |
| NodeInterface | createNode() Создаёт и настраивает узел в соответствии с этим определением. | |
| $this | setPathSeparator(string $separator) Устанавливает разделитель пути. | from NodeDefinition |
| setBuilder(NodeBuilder $builder) Устанавливает пользовательский конструктор дочерних узлов. | ||
| NodeBuilder | children() Возвращает конструктор для добавления дочерних узлов. | |
| NodeDefinition | prototype(string $type) Устанавливает прототип для дочерних узлов. | |
| VariableNodeDefinition | variablePrototype() | |
| ScalarNodeDefinition | scalarPrototype() | |
| BooleanNodeDefinition | booleanPrototype() | |
| IntegerNodeDefinition | integerPrototype() | |
| FloatNodeDefinition | floatPrototype() | |
| ArrayNodeDefinition | arrayPrototype() | |
| EnumNodeDefinition | enumPrototype() | |
| $this | addDefaultsIfNotSet() Добавляет значение по умолчанию, если узел не задан в конфигурации. | |
| $this | addDefaultChildrenIfNoneSet(int|string|array|null $children = null) Добавляет дочерние узлы со значением по умолчанию, если они не определены. | |
| $this | requiresAtLeastOneElement() Требует, чтобы узел имел по крайней мере один элемент. | |
| $this | disallowNewKeysInSubsequentConfigs() Запрещает добавление новых ключей в последующей конфигурации. |
| $this | fixXmlConfig(string $singular, string $plural = null) Устанавливает правило нормализации для XML-конфигураций. | |
| $this | useAttributeAsKey(string $name, bool $removeKeyItem = true) Устанавливает атрибут, значение которого будет использоваться в качестве ключа. | |
| $this | canBeUnset(bool $allow = true) Устанавливает, может ли узел быть удалён. | |
| $this | canBeEnabled() Добавляет булевое значение "enabled" для активации текущего раздела. | |
| $this | canBeDisabled() Добавляет булевое значение "enabled" для активации текущего раздела. | |
| $this | performNoDeepMerging() Отключает глубокое слияние узла. | |
| $this | ignoreExtraKeys(bool $remove = true) Позволяет указывать дополнительные ключи конфигурации в массиве без выброса исключения. | |
| $this | normalizeKeys(bool $bool) Устанавливает нормализацию ключей. | |
| $this | append(NodeDefinition $node) Добавляет определение узла. | |
| NodeBuilder | getNodeBuilder() Возвращает билдер узла для добавления дочерних элементов и прототипов. | |
| validateConcreteNode(ArrayNode $node) Проверяет конфигурацию конкретного узла. | ||
| validatePrototypeNode(PrototypedArrayNode $node) Проверяет конфигурацию узла-прототипа. | ||
| NodeDefinition[] | getChildNodeDefinitions() |
Подробности
__construct(string|null $name, NodeParentInterface $parent = null)
Параметры
| string|null | $name | |
| NodeParentInterface | $parent |
$this setParent(NodeParentInterface $parent)
Устанавливает родительский узел.
Параметры
| NodeParentInterface | $parent |
Возвращаемое значение
| $this |
$this info(string $info)
Устанавливает сообщение с информацией.
Параметры
| string | $info | Текст информации |
Возвращаемое значение
| $this |
$this example(string|array $example)
Устанавливает пример конфигурации.
Параметры
| string|array | $example |
Возвращаемое значение
| $this |
$this attribute(string $key, mixed $value)
Устанавливает атрибут узла.
Параметры
| string | $key | |
| mixed | $value |
Возвращаемое значение
| $this |
NodeParentInterface|NodeBuilder|NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition|null end()
Возвращает родительский узел.
Возвращаемое значение
| NodeParentInterface|NodeBuilder|NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition|null | Построитель родительского узла |
NodeInterface getNode(bool $forceRootNode = false)
Создает узел.
Параметры
| bool | $forceRootNode | Принудительно сделать этот узел корневым узлом |
Возвращаемое значение
| NodeInterface |
$this defaultValue(mixed $value)
Устанавливает значение по умолчанию.
Параметры
| mixed | $value | Значение по умолчанию |
Возвращаемое значение
| $this |
$this isRequired()
Устанавливает узел как обязательный.
Возвращаемое значение
| $this |
$this setDeprecated(string $message = 'The child node "%node%" at path "%path%" is deprecated.')
Устанавливает узел как устаревший.
Вы можете использовать %node% и %path% в качестве заполнитель для отображения имени узла и его полного пути соответственно.
Параметры
| string | $message | Сообщение об устаревании |
Возвращаемое значение
| $this |
$this treatNullLike(mixed $value)
Устанавливает эквивалентное значение, используемое, когда узел содержит null.
Параметры
| mixed | $value |
Возвращаемое значение
| $this |
$this treatTrueLike(mixed $value)
Устанавливает эквивалентное значение, используемое, когда узел содержит true.
Параметры
| mixed | $value |
Возвращаемое значение
| $this |
$this treatFalseLike(mixed $value)
Устанавливает эквивалентное значение, используемое, когда узел содержит false.
Параметры
| mixed | $value |
Возвращаемое значение
| $this |
$this defaultNull()
Устанавливает null в качестве значения по умолчанию.
Возвращаемое значение
| $this |
$this defaultTrue()
Устанавливает true в качестве значения по умолчанию.
Возвращаемое значение
| $this |
$this defaultFalse()
Устанавливает false в качестве значения по умолчанию.
Возвращаемое значение
| $this |
ExprBuilder beforeNormalization()
Устанавливает выражение, которое выполняется перед нормализацией.
Возвращаемое значение
| ExprBuilder |
$this cannotBeEmpty()
Запрещает значение узла быть пустым.
Возвращаемое значение
| $this |
ExprBuilder validate()
Устанавливает выражение для проверки.
Выражение получает значение узла и должно вернуть его. Оно может его изменить. Исключение должно быть выброшено, когда узел недействителен.
Возвращаемое значение
| ExprBuilder |
$this cannotBeOverwritten(bool $deny = true)
Устанавливает, может ли узел быть перезаписан.
Параметры
| bool | $deny | Запрещено ли перезаписывание или нет |
Возвращаемое значение
| $this |
protected ValidationBuilder validation()
Получает построитель для правил проверки.
Возвращаемое значение
| ValidationBuilder |
protected MergeBuilder merge()
Получает построитель для правил слияния.
Возвращаемое значение
| MergeBuilder |
protected NormalizationBuilder normalization()
Получает построитель для правил нормализации.
Возвращаемое значение
| NormalizationBuilder |
protected NodeInterface createNode()
Инициализирует и настраивает узел в соответствии с этим определением.
Возвращаемое значение
| NodeInterface | $node Экземпляр узла |
Исключения
| InvalidDefinitionException | Когда определение некорректно |
$this setPathSeparator(string $separator)
Установить разделитель пути.
Параметры
| string | $separator |
Возвращаемое значение
| $this |
setBuilder(NodeBuilder $builder)
Устанавливает пользовательского построителя дочерних элементов.
Параметры
| NodeBuilder | $builder |
NodeBuilder children()
Возвращает билдер для добавления дочерних узлов.
Значение возврата
| NodeBuilder |
NodeDefinition prototype(string $type)
Устанавливает шаблон для дочерних узлов.
Параметры
| string | $type | Тип узла |
Значение возврата
| NodeDefinition |
VariableNodeDefinition variablePrototype()
Значение возврата
| VariableNodeDefinition |
ScalarNodeDefinition scalarPrototype()
Значение возврата
| ScalarNodeDefinition |
BooleanNodeDefinition booleanPrototype()
Значение возврата
| BooleanNodeDefinition |
IntegerNodeDefinition integerPrototype()
Значение возврата
| IntegerNodeDefinition |
FloatNodeDefinition floatPrototype()
Значение возврата
| FloatNodeDefinition |
ArrayNodeDefinition arrayPrototype()
Значение возврата
| ArrayNodeDefinition |
EnumNodeDefinition enumPrototype()
Значение возврата
| EnumNodeDefinition |
$this addDefaultsIfNotSet()
Добавляет значение по умолчанию, если узел не задан в конфигурации.
Этот метод применим только к конкретным узлам (не к шаблонам узлов). Если этот метод был вызван, и узел не задан на стадии финализации, его значение по умолчанию будет получено из значений по умолчанию его дочерних узлов.
Значение возврата
| $this |
$this addDefaultChildrenIfNoneSet(int|string|array|null $children = null)
Добавляет дочерние узлы со значением по умолчанию, если они не определены.
Этот метод применим только к шаблонам узлов.
Параметры
| int|string|array|null | $children | Количество дочерних узлов/Имя дочернего узла/Имена дочерних узлов для добавления |
Значение возврата
| $this |
$this requiresAtLeastOneElement()
Требует, чтобы узел имел как минимум один элемент.
Этот метод применим только к шаблонам узлов.
Значение возврата
| $this |
$this disallowNewKeysInSubsequentConfigs()
Запрещает добавление новых ключей в последующих конфигурациях.
Если используется, все ключи должны быть определены в одном файле конфигурации.
Значение возврата
| $this |
$this fixXmlConfig(string $singular, string $plural = null)
Устанавливает правило нормализации для конфигураций XML.
Параметры
| string | $singular | Ключ для переназначения |
| string | $plural | Множественное число ключа для нестандартных множественных чисел |
Значение возврата
| $this |
$this useAttributeAsKey(string $name, bool $removeKeyItem = true)
Устанавливает атрибут, значение которого используется в качестве ключа.
Это полезно, когда у вас есть индексированный массив, который должен быть ассоциативным массивом. Вы можете выбрать элемент из массива, который будет ключом для конкретного элемента. Например, если "id" является "ключом", то:
array(
array('id' => 'my_name', 'foo' => 'bar'),
);
становится
array(
'my_name' => array('foo' => 'bar'),
);
Если вы хотите, чтобы "'id' => 'my_name'" по-прежнему присутствовал в результирующем массиве, вы можете установить второе аргумент этого метода в false.
Этот метод применим только к шаблонам узлов.
Параметры
| string | $name | Имя ключа |
| bool | $removeKeyItem | Удалить элемент ключа или нет |
Значение возврата
| $this |
$this canBeUnset(bool $allow = true)
Устанавливает, может ли узел быть удалён.
Параметры
| bool | $allow |
Значение возврата
| $this |
$this canBeEnabled()
Добавляет булеву переменную "enabled" для активации текущего раздела.
По умолчанию раздел отключен. Если любая конфигурация указана, узел автоматически активируется:
enableableArrayNode: {enabled: true, ...} # Конфигурация включена & значения по умолчанию переопределяются enableableArrayNode: ~ # Конфигурация включена & используются значения по умолчанию enableableArrayNode: true # Конфигурация включена & используются значения по умолчанию enableableArrayNode: {other: value, ...} # Конфигурация включена & значения по умолчанию переопределяются enableableArrayNode: {enabled: false, ...} # Конфигурация выключена enableableArrayNode: false # Конфигурация выключена
Значение возврата
| $this |
$this canBeDisabled()
Добавляет булеву переменную "enabled" для активации текущего раздела.
По умолчанию раздел включен.
Значение возврата
| $this |
$this performNoDeepMerging()
Отключает глубокое слияние узла.
Значение возврата
| $this |
$this ignoreExtraKeys(bool $remove = true)
Разрешает указывать дополнительные ключи конфигурации в массиве без выброса исключения.
Эти значения конфигурации просто игнорируются и удаляются из результирующего массива. Это следует использовать только в особых случаях, когда вы хотите передать весь массив конфигурации через специальное дерево, которое обрабатывает только часть массива.
Параметры
| bool | $remove | Удалить дополнительные ключи |
Значение возврата
| $this |
$this normalizeKeys(bool $bool)
Устанавливает нормализацию ключей.
Параметры
| bool | $bool | Включить нормализацию ключей |
Значение возврата
| $this |
$this append(NodeDefinition $node)
Добавляет определение узла.
Использование:
$node = $parentNode
->children()
->scalarNode('foo')->end()
->scalarNode('baz')->end()
->append($this->getBarNodeDefinition())
->end()
;
Параметры
| NodeDefinition | $node |
Значение возврата
| $this |
protected NodeBuilder getNodeBuilder()
Возвращает билдер узла, который используется для добавления дочерних элементов и шаблона.
Значение возврата
| NodeBuilder | Билдер узла |
protected validateConcreteNode(ArrayNode $node)
Проверка конфигурации конкретного узла.
Параметры
| ArrayNode | $node |
Исключения
| InvalidDefinitionException |
protected validatePrototypeNode(PrototypedArrayNode $node)
Проверка конфигурации узла прототипа.
Параметры
| PrototypedArrayNode | $node |
Исключения
| InvalidDefinitionException |
NodeDefinition[] getChildNodeDefinitions()
Возвращаемое значение
| NodeDefinition[] |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.html