/** * Process any imports * * @param array $configuration * @param $source */ protected function processImports(array &$configuration, $source) { foreach ($configuration as $key => $value) { if ($key == 'imports') { foreach ($value as $resource) { $basePath = str_replace(basename($source), '', $source); $parser = new Yaml(); $this->configuration = array_merge($parser->parse($basePath . $resource['resource']), $configuration); } unset($configuration['imports']); } } }
/** * Test that a yaml configuration file with imports is parsed correctly */ public function testParsesImportFileCorrectly() { $this->assertEquals(['swiftmailer' => ['host' => 'smtp.example.com', 'port' => 999, 'username' => 'test', 'password' => 'user', 'encryption' => false, 'auth_mode' => ''], 'application' => ['name' => 'Test Application', 'defaults' => ['page_title' => 'Welcome to Test Application', 'page_description' => 'Welcome to Test Application'], 'domain' => 'example.com']], $this->parser->parse(__DIR__ . '/../resource/test_config_b.yml')); }