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:----p7upASb/7OUJ0Wfe+/s7f1g6pwF8uGJgyyuNBu2c+QVnbujI6vd46/GlNpRwxbvKHL4jDSCXPqCitieT0yqg52xImpdUrwO8rzY+nWT+eq7wOd1iWZBrrio+coHVOCNf7uYukqUtXNFGCgmtwFhRk+XKnL9UTmdO+a19j/s4VGKvyKbCWg7oxP4HgHGsaXnPoQn9Gp6HyMRKKNKcDvhclPFcht0TZ1zaVDv2liaxKHpfqP3FaLDZt2aWE7GkVGqHjVni5eFv28+iV1F8JRD1+qK/Qmd0xeERRErUOEmTlnCczoCcWeB4gL/LcMOOtqJyusJtRmaIMpmSpMel+uGEqQ5lwu7DjmCv5VvMkXstySsCBRhH5ngjGWmQW3M5w/tN8pdKhER662vJfZ+fbctZK405JMHIkMwVLdhETFJFkxYznTl71HsLu80IwBD6xXIRtmZMt6yCnSzC/GS8kTM6e+0kkAJOOMCloypb6w4982819rPuhMvmfhcJSyEGmodbxPvQfiCzEW5CllfR6KTYKQL04VQk/+N7jWrWQmunWAM4o7DzXAyVwjuC+dgv0p0si6j4l9R6iWY2EMczDH5tu6Uk/Q1X7CAUWRlNhC34uFy2+KU+QCcfqJcPhK8MSlN2r1MxYcBPT6jfrcQlVy0zCtvw6YUMYrJ5OqyUy4k233s=----ATTACHMENT:----MTM5ODk4Nzk1OTkzODQ0NyAxNjU3MDU3OTc3MzE0NTQgOTEyMTI5MjQ1MjY3NzQ1Ng==