HippoPHP\Hippo\Config\YAMLConfigReader::load PHP Method

load() private method

private load ( array $config, mixed $filename = false ) : Config
$config array
$filename mixed
return Config
    private function load($config, $filename = false)
    {
        if ($filename) {
            $included = [$this->normalizeConfigName($filename)];
        } else {
            $included = [];
        }
        while (isset($config['extends'])) {
            $baseConfigName = $config['extends'];
            $baseConfigDir = $filename ? dirname($filename) : '.';
            $baseConfigPath = $baseConfigDir . DIRECTORY_SEPARATOR . $baseConfigName . '.yml';
            $baseConfig = $this->parseFile($baseConfigPath);
            unset($config['extends']);
            $config = $this->mergeRecursive($baseConfig, $config);
            if (isset($config['extends'])) {
                if (in_array($this->normalizeConfigName($config['extends']), $included)) {
                    // Avoid circular dependencies
                    unset($config['extends']);
                } else {
                    $included[] = $this->normalizeConfigName($config['extends']);
                }
            }
        }
        return new Config($config);
    }