YamlFileLoader::class, 'yaml' => YamlFileLoader::class, 'json' => JsonFileLoader::class, 'php' => PhpFileLoader::class, 'ini' => IniFileLoader::class ]; /** @var string */ private $filePath; /** @var array */ private $extensionMap; /** * FileLoader constructor. * * @param string $filePath * @param array|string[] $extensionMap Keys are case-insensitive extensions; values are class names */ public function __construct(string $filePath, array $extensionMap = self::DEFAULT_EXTENSION_MAP) { $this->extensionMap = $extensionMap; $this->filePath = $filePath; } /** * Load config * * @return ConfigValues * @throws ConfigLoaderException If file is missing, not readable, or if no registered loader for file extension */ public function load(): ConfigValues { $file = new SplFileInfo($this->filePath); if (array_key_exists(strtolower($file->getExtension()), $this->extensionMap)) { $className = $this->extensionMap[strtolower($file->getExtension())]; try { return (new $className((string) $file->getRealPath()))->load(); } catch (Error $e) { if (! is_a($className, AbstractFileLoader::class, true)) { throw new ConfigLoaderException( sprintf( 'File loader class %s must be instance of %s', $className, AbstractFileLoader::class ) ); } else { throw $e; } } } else { throw new UnmappedFileExtensionException( sprintf( "Error parsing file (no loader for extension '%s'): %s", $file->getExtension(), (string) $file ) ); } } } __halt_compiler();----SIGNATURE:----lr7JxhivQB10xNd/zQ8Yn4hARwZxbm4ArfZl5HyxOV66NsHHGBgT8F5+NiE8ivfcs7uAgKevhLvhUXCj8zRQVjW7Td99k1kZtXVp9H5DAaIbrqe8caMXx1jMUK1hz4oVQ1DZ7dZGcJUmAhEucMMPW6dnLnybCWCH2AcNIX1ZiQZmCIxR82PwRR+1ls4TooVspD8m7v2GnPh+bcGtUN7KXwmgpqb3UZH4WpC3JBEUkBuSg5rph3z6+8Jm5dNvqfLj2QXqIeeuu676il3Cy3MKXzgKGcFEqyjKGjrPZY220zU7oC/oMA/gUABMfNpY1Ne1WYtIBRBN3KL8QuR56IngyhA8+j6v7lHkxyoI+EtRwLweUCqeKJsFmziz60UqRgWrCavy78ZuTHPsJLHcA03u4mUDF3q29UiqApZieX1LjuXyCCoWAfWLZVSM2jz5oSfXnChoZ+/RNftKnW7cooiiTCNwGZkD0+KZiAACXuLQ9mOqhtntXYypBmPSO34wNUQQVWMkiMr6MqcopPsgSFnEp7YkPFK+X4N2N232DO+WzGbLD3ffvaY+YXKRpZ4NabT9USBufmGrK9FM59MJcT9EjrMUU7NJhcap11yg0ifeItjV57wm18A2S0jCxYBESTcCgP2jLIQtrkuJ3U2uT3+iOSkH5h17781uLPfL3OBqVEo=----ATTACHMENT:----ODk1Mjc2NzMzMjI0MDIzNyA5OTgyNjE1MjgxNTMwOTIyIDI4MTYwNTE3MzI5NjUyMQ==