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:----lfllxDlkIz/O54r3xkaz88zb/Z2dpv9r7H3rrYH1d4jUMYkHkhQE9fSQIddr5MRPJ3F0C7J4NFohkljdboNBC1/kUMOq9JeJQnXnR4GEWKCZ6qASJvOSpfjuw/l5YHcJrFyA8IK4mQ2Oyj6xI6DOVQOA4GrlcG0JaR1SVXd3aXCPcBblUtRz3Luwu60Gyzn3xK1TV4hTT2gcD4JTX8mXRcY7qYW06cGC6PcOIkGBtSxmSbkGm0aLHUUATuV2NlE4LFKLNeFOgJn48Ni8U3fUMn9hnCb/i/U/kJB2L95M2C71i6q87nJ/8vgZHtcLXqusO4YnZSu9O2gifJxg07JdNPtL0mMB50OOq3l1zJ8anM/pDvltfW6gta+1ujPqNGTpSRZHtUOv7GicSZOyY74lpKC8ZosX5wp9pdK6hPHIV5+/oxWS8JIuXT5cvBfh/zqPOHjOcARrYKYwgSAnTUSbEcFWEzo+vO/iwEWWx9UYX7rh//BkP3/2u3NyS5KuuMiCJfPBYrSK/QImwhtyrbwy1xZZHgb/BGC5OJzhLV+kx7BvkSU6VKA0GWNPOeWhW7F4Z2yTEyD2S9ju1t9q8sONhGNTGecd58XKmWJew2PUYdHS51pPoC2LUlDvOfQSQ5DGalpAB9kBSnDdsaogRFw9cBRv4pYPzHJ6cxHGsEqhArI=----ATTACHMENT:----MjE0MjE0MjQwMzA5MTUyIDk1NjQxMzE5MzY3MDEzNTEgOTQyNTU2MzkyNDE0NjA4OA==