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:----s4a4ne/KLWa7KhCHv+oHp/2xFlG18UfMgmWqOYAjXApE9uYxdOA6Y4aiy7DtW2qgGABTqOBoCI6qiMyE6jrlARYNYS3qtOBzEKEM9lf6f3mNW3wrToktuDhy8AteYPw5F/Kth45lp3j9socvr70uDtkvGMg0SRYzfxFPlZ0MzpLPWYM3Et6x8rlPeFpQ4Q2J6qc83EilFuCrPNwgg6GBFMOkzpFqvpTvKEqpvWPZJSf7MifX6YirZ4fgR2fonVYt+TbkRcF6azFvLycJQRkwEOjdufFQXPlaHLybSeZqYGgXkWUbJ/aERWK4IHZ/WUbpa7O3opHRIzvm2/VcgpLYoETueQCGPghcLcP1QT5cHGgkWhdA4uwQaxm40PK2surW+eb3kPBy8JfRNHb38unqD5Yb3tFGM+ITPz2MUCNyuIr9EsWec09imVkHTLfT3ShmtHkoLUDdalTE76TBcN40Sfl9DpHzOfQZlHi1YaGjb6aAt+qiGYY/4HvN2e60QYvEVYDItn4D3nJ0/xMR9nKJAcDvz6J44Tur3L0v3Hh0l+bajltYBqupE3F8PJrDGo1Le8j0DfmlsvN2oxjqQFfoeiD6gekyAvCLKxGDiE2dNrZybrQ/6k4rfNIZYFsMoAsWP/4mO9MrChTNY/pvI5Vn9yUAAHEBqAJaO60nCXCwc5g=----ATTACHMENT:----MjYyNjUzNDk1MTYwMDUxNyA0NTMxMjU3NjA4OTExMzQ5IDE1NjM1NDE5MzI5MDYzNDk=