public static function initByPath(
        $path, array $options = [
            'registry' => Recursive::ALL_INCLUSIVE,
        ]
    )
    {
        if (!file_exists($path) || !is_readable($path)) {
            throw new RuntimeException(
                sprintf("Cannot open config file \"%s\"", $path),
                self::EX_CANNOT_OPEN_CONFIG
            );
        }
        $config = \donbidon\Lib\Config\Ini::parse(
            file_get_contents($path), true
        );
        if (!is_array($config)) {
            throw new RuntimeException(
                sprintf("Cannot parse config file \"%s\"", $path),
                self::EX_CANNOT_PARSE_CONFIG
            );
        }
        $registry = static::initByArray($config, $options);

        return $registry;
    }