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:----1x1iHP7+P6DlMUjSvKteiDLF2wNFVco1MTBDFCxid9klZsLuTZBcoeEuXkKpWEvq8t9ntgkW0jZvRgpC/PdqnKjZA0rDII9ABhdaqfmNXyShUs0NYX2vuPIRTd4DvHMOq6Vl6DjVaaOtIq7nA1C1tJH6anmOKZl/meB1eqKHclnqRQCSNRhOWQAuRFI62PzxxF5auBErYm4n6Tm1ie/0z/yeH9Ot9ToUSZeuIZB9pbkdC2XbHW7cd/tvSIc8TTF0TLg6hmVI0npLAcIHHDfZ3llbE+c3/OMM+3twTwBK3Ics8Pniq3ep01gWEOqeGd53jrZWMtaoK0BY3f6oeNt598BQB+mVwCmiN/EgXE1N4ArlOnLzGlUjGbxC1QbwDBmmzJ5eZ1lkX6PaOpiPJmCCihk+pjzZ1FRqUiVsGHBCbpu6MuzFkbu3PgC0znLsB5j7UWtMS8CQqd5rjnaMIH0g8QBSuQ0QqBIatjPXNuUIxxSXYnAHzYBY4jJIkEoIVCcWxo9GZTAfsfQlbXXNv/45JfeDoM4li5Z+GxXTPfGuLtQnH0eSqPwhzys0FN502ULWunK5IgGK/gCg9uR1qnELQy3VGHYTxPDtoOp7fsE92hFEAwZIg3MmZIVNL8QcQlFK8odWE4pQZNR1IJkv58HfjR984wMHa/tO5yWYyGLbEYw=----ATTACHMENT:----MTUwNDU3NjMzNDMyMTAwNSA3NzkyMzQ3MjMzMzQ0MTQgNjYyMjA5MDEzMDE1NDI0Mw==