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

sub() public method

Defines subset
public sub ( string $name, boolean $required = true ) : Extension
$name string Parameter bag name
$required boolean optional Whether this bag is required.
return Extension
    public function sub($name, $required = true)
    {
        return new ClosureInvoker(function ($method, $invoker) use($name, $required) {
            $arguments = array_slice(func_get_args(), 2);
            $arguments[0] = $name . '.' . $arguments[0];
            if ($method != 'sub' && strpos($arguments[0], '.')) {
                $p = preg_replace('/\\.[^\\.]+$/', '', $arguments[0]);
                if ($required) {
                    $obj = new \stdClass();
                    $invoker->getObject()->setParameter($p, $obj);
                }
                $invoker->getObject()->paths[$p] = true;
            }
            $ret = call_user_func_array(array($invoker->getObject(), $method), $arguments);
            if ($ret instanceof ClosureInvoker) {
                $ret->parent = $invoker;
                return $ret;
            } else {
                return $invoker;
            }
        }, $this);
    }