public function testParser() { $configs = ['php' => 'phoenix.php', 'yml' => 'phoenix.yml', 'neon' => 'phoenix.neon', 'json' => 'phoenix.json']; foreach ($configs as $type => $file) { $configParser = ConfigParserFactory::instance($type); $filename = __DIR__ . '/../../example/' . $file; $config = $configParser->parse($filename); $this->assertArrayHasKey('migration_dirs', $config); $this->assertArrayHasKey('phoenix', $config['migration_dirs']); $this->assertArrayHasKey('environments', $config); $this->assertArrayHasKey('mysql', $config['environments']); $this->assertArrayHasKey('sqlite', $config['environments']); } }
private function loadConfig(InputInterface $input) { if ($this->config) { return; } $configFile = $input->getOption('config'); if (!$configFile) { $configFile = $this->getDefaultConfig(); } if (!$configFile) { throw new ConfigException('No configuration file exists. Create phoenix.php or phoenix.yml or phoenix.neon or phoenix.json in your project root or specify path to your existing config file with --config option'); } if ($configFile && !file_exists($configFile)) { throw new ConfigException('Configuration file "' . $configFile . '" doesn\'t exist.'); } $type = $input->getOption('config_type') ?: pathinfo($configFile, PATHINFO_EXTENSION); $configParser = ConfigParserFactory::instance($type); $configuration = $configParser->parse($configFile); $this->config = new Config($configuration); }
public function testUnknownType() { $this->setExpectedException(ConfigException::class, 'Unknown config type "asdf"'); ConfigParserFactory::instance('Asdf'); }