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:----QP5DC+LwRcjX0nUnl9PLPjD2O1StvUpFVsXt3LSh9fk5P4domEBU4oiwPbz3oFEmppyOxz5EvH+xMX88HrsVRHqVlmq07U57pP6JaYyK8wQ8jfzJIOrNAEh7vPaYYgouMzW7a7bdWiUdZ6bS1SiVLRtZDC+TZwyNtq5aZWROx8wschEnXmXiYnKBpRMqUqVcHsZk1pIZ33hw5ZXqzIOAHGvwF+JSYkABOdnOqWlfGfDZK7g7AW1k+PUoI5RxjctWCBqg1t2o3jAh6qeDjpTZkKn/g9Fqkd7tgaXOgt0dj0zhZYjnaf2qq5qDd/TXytrcrOLGMb8niscwZ16t19+pzjMhXa8XXgcX69FatZdUiBSyGRJZqrNk1AS9A3s+fNweA+hffaQyFZY+8+a5QAEar1yHiprgCvCfKd5ugkil6zd/RPnVN7PPegkCZMjFpKFAop5egY1HaoW/z2XHdr/arGB0KOkh465S2tDsFKtnUrIvUg9VoMhYGm+91zHiX2wSM5z5gOrVzSGKWmYrUUWqpGA+K2GJebN0cxLQnlDiJBoLhNIvFSGTk2I5OEXHW49pFIMRDdo8BrMx/MRvuLkrVbngra72kA9CVbqJsA8B+rRZoju8D/5GIFJTE9Xogk+/sBfedUxKK2F5yqk5JyyYVD1B7BLPK2ctWzRrf5Z7Trc=----ATTACHMENT:----NjU3Nzk2ODI2Mzc1NTgyMSA5ODA0ODY4ODY3MDY0MjY3IDY4OTY1NzQ0ODU0OTIyMzI=