abstract class BaseNode implements NodeInterface

The base node class.

Constants

DEFAULT_PATH_SEPARATOR

Properties

protected $name
protected $parent
protected $normalizationClosures
protected $finalValidationClosures
protected $allowOverwrite
protected $required
protected $deprecationMessage
protected $equivalentValues
protected $attributes
protected $pathSeparator

Methods

__construct(string|null $name, NodeInterface $parent = null, string $pathSeparator = self::DEFAULT_PATH_SEPARATOR)

No description

static void
setPlaceholder(string $placeholder, array $values)

Register possible (dummy) values for a dynamic placeholder value.

static void
setPlaceholderUniquePrefix(string $prefix)

Sets a common prefix for dynamic placeholder values.

static void
resetPlaceholders()

Resets all current placeholders available.

setAttribute($key, $value)

No description

getAttribute($key, $default = null)

No description

hasAttribute($key)

No description

getAttributes()

No description

setAttributes(array $attributes)

No description

removeAttribute($key)

No description

setInfo(string $info)

Sets an info message.

string
getInfo()

Returns info message.

setExample(string|array $example)

Sets the example configuration for this node.

string|array
getExample()

Retrieves the example configuration for this node.

addEquivalentValue(mixed $originalValue, mixed $equivalentValue)

Adds an equivalent value.

setRequired(bool $boolean)

Set this node as required.

setDeprecated(string|null $message)

Sets this node as deprecated.

setAllowOverwrite(bool $allow)

Sets if this node can be overridden.

setNormalizationClosures(array $closures)

Sets the closures used for normalization.

setFinalValidationClosures(array $closures)

Sets the closures used for final validation.

bool
isRequired()

Returns true when the node is required.

bool
isDeprecated()

Checks if this node is deprecated.

string
getDeprecationMessage(string $node, string $path)

Returns the deprecated message.

string
getName()

Returns the name of the node.

string
getPath()

Returns the path of the node.

mixed
merge(mixed $leftSide, mixed $rightSide)

Merges two values together.

mixed
normalize(mixed $value)

Normalizes a value.

The
preNormalize($value)

Normalizes the value before any other normalization is applied.

getParent()

Returns parent node for this node.

mixed
finalize(mixed $value)

Finalizes a value.

validateType(mixed $value)

Validates the type of a Node.

mixed
normalizeValue(mixed $value)

Normalizes the value.

mixed
mergeValues(mixed $leftSide, mixed $rightSide)

Merges two values together.

mixed
finalizeValue(mixed $value)

Finalizes a value.

bool
allowPlaceholders()

Tests if placeholder values are allowed for this node.

bool
isHandlingPlaceholder()

Tests if a placeholder is being handled currently.

array
getValidPlaceholderTypes()

Gets allowed dynamic types for this node.

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 The preNormalize($value)

Normalizes the value before any other normalization is applied.

Parameters

$value

Return 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

abstract protected validateType(mixed $value)

Validates the type of a Node.

Parameters

mixed $value The value to validate

Exceptions

InvalidTypeException when the value is invalid

abstract protected mixed normalizeValue(mixed $value)

Normalizes the value.

Parameters

mixed $value The value to normalize

Return Value

mixed The normalized value

abstract protected mixed mergeValues(mixed $leftSide, mixed $rightSide)

Merges two values together.

Parameters

mixed $leftSide
mixed $rightSide

Return Value

mixed The merged value

abstract protected mixed finalizeValue(mixed $value)

Finalizes a value.

Parameters

mixed $value The value to finalize

Return Value

mixed The finalized value

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