Scalr\System\Config\Extension::node PHP Method

node() public method

Appends new scalar or scalarArray node to Extension
public node ( string $name, mixed $defaultValue = null ) : Extension
$name string Dot notaion name.
$defaultValue mixed optional Default value for the parameter.
return Extension
    public function node($name, $defaultValue = null)
    {
        if ($name === null || $name == '') {
            throw new Exception\ExtensionException(sprintf('Node name must not be empty.'));
        }
        $obj = new \stdClass();
        if (func_num_args() > 1) {
            if ($defaultValue !== null && !is_scalar($defaultValue)) {
                $valid = true;
                if (!is_array($defaultValue)) {
                    $valid = false;
                } else {
                    //Additional check that all values of arrays are scalar.
                    foreach ($defaultValue as $k => $v) {
                        if ($v !== null && !is_scalar($v)) {
                            $valid = false;
                            break;
                        }
                    }
                }
                if (!$valid) {
                    throw new Exception\ExtensionException(sprintf('Default node value must be scalar or scalarArray (one dimension array with numeric keys), "%s" given.', gettype($defaultValue)));
                }
            }
            $obj->default = $defaultValue;
        }
        $this->parameters[$name] = $obj;
        return $this;
    }