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:----FOlCwkU8YjnauWeakKZw1gGvksaTqbWH7872K6WBXtkszuCXJ2NQrMnEud8WXXPj3b1UsiJ306L/YgXdf25B7GkCbEBYz4EF5lb0pSNQOqwUuiCP7Yb5SsfoC6cqgvbaP5WoLKMkARtXvF82W79B+7uvmupZ88cFWNiOhURSO8+9ZHEZZDVHLco68UzZ7RXtQOQmQ56+6gciwqAoBk7ya45IjeYAjFEyWh7SMRja9IQHVW0ENJBhBtuCsNhZgiqC6V9um110sLD6gdqDTyBOwowKAcg4EILzXLA451JjSGJVqZv1PqOziBM8B5VrHWXJcbayLjLdJrtLRURC7qyTTLUvLZ/rFx+CC5bnItRaEk+MCU5Jw1i8jILvMtA3Vf1cjBht52oBK+AhvrdSwbm+MseGYWmlrXD4q6HJ9qefgd0cmA+c1dJNoPKMZB1WlJOljYabA+aI2nibK2M0a23MEk1p5eU6u2zslc5DvW6glj+gWGiKCQAtgmdhseCfRl5SuHiUdulMbO9nTO5RUuMDRVqkfMjbu9SF4tL9pdjLxe03S+6mtAtiPts7FJBQ5bJ6LjnH9gn+bYKPSsio8x7bSZ26tXNz3G1YfjTi2phkVZphyIZvmzD+2tokgqBeTfzDv8RaZr/dXEuByjo7UAjkBilXHfTt++6MZI46t9sFgxM=----ATTACHMENT:----NDk4MDc2ODk0MjIzNzQ1NiA0NzAyNzMzMzc4NjA2MTU2IDc1MDUwODkyMjgwMjk1ODg=