/
home
/
obinna
/
html
/
boaz2
/
vendor
/
doctrine
/
migrations
/
lib
/
Doctrine
/
Migrations
/
Configuration
/
Migration
/
Upload File
HOME
<?php declare(strict_types=1); namespace Doctrine\Migrations\Configuration\Migration; use Doctrine\Migrations\Configuration\Configuration; use Doctrine\Migrations\Configuration\Migration\Exception\InvalidConfigurationFormat; use function count; use function pathinfo; use const PATHINFO_EXTENSION; /** * @internal */ final class FormattedFile extends ConfigurationFile { /** @var callable[] */ private $loaders = []; private function setDefaultLoaders(): void { $this->loaders = [ 'json' => static function ($file): ConfigurationLoader { return new JsonFile($file); }, 'php' => static function ($file): ConfigurationLoader { return new PhpFile($file); }, 'xml' => static function ($file): ConfigurationLoader { return new XmlFile($file); }, 'yaml' => static function ($file): ConfigurationLoader { return new YamlFile($file); }, 'yml' => static function ($file): ConfigurationLoader { return new YamlFile($file); }, ]; } public function getConfiguration(): Configuration { if (count($this->loaders) === 0) { $this->setDefaultLoaders(); } $extension = pathinfo($this->file, PATHINFO_EXTENSION); if (! isset($this->loaders[$extension])) { throw InvalidConfigurationFormat::new($this->file); } return $this->loaders[$extension]($this->file)->getConfiguration(); } }