protected function loadConfiguration() { $sources = new \SplPriorityQueue(); foreach ($this->getKomponents() as $komponent) { foreach ($komponent->getConfigurationSources($this->getContextName()) as $source) { $sources->insert($source, $source->getPriority()); } } $cfg = new TestConfigLoader(); $this->testLoader->loadConfigurationSources($cfg); foreach ($this->testLoader->findRules() as $rule) { $rule->loadConfigurationSources($cfg); } foreach ($cfg as $source) { $sources->insert($source, $source->getPriority()); } $loader = new ConfigurationLoader(); $loader->registerLoader(new PhpConfigurationLoader()); $loader->registerLoader(new YamlConfigurationLoader()); $config = new Configuration(); $params = $this->getContainerParams(); foreach ($sources as $source) { $config = $config->mergeWith($source->loadConfiguration($loader, $params)); } foreach ($this->testLoader->findRules() as $rule) { $config = $config->mergeWith($rule->loadConfiguration()); } return $config->mergeWith($this->testLoader->loadConfiguration()); }
public function loadConfiguration() { if (!$this->needsCheck && array_key_exists('config', $this->cached)) { $this->dump['config'] = $this->cached['config']; return new Configuration($this->cached['config']); } $loader = new ConfigurationLoader(); $loader->registerLoader(new PhpConfigurationLoader()); $loader->registerLoader(new YamlConfigurationLoader()); $sources = new \SplPriorityQueue(); $params = $this->kernel->getContainerParams(); foreach ($this->loadConfigurationSources() as $source) { $sources->insert($source, $source->getPriority()); } foreach ($this->kernel->getKomponents() as $komponent) { foreach ($komponent->getConfigurationSources($this->contextName) as $source) { $sources->insert($source, $source->getPriority()); } } $hash = hash_init('md5'); foreach (clone $sources as $source) { hash_update($hash, $source->getKey() . ':' . $source->getLastModified() . '|'); } $configHash = $this->dump['config.hash'] = hash_final($hash); if (isset($this->cached['config.hash']) && $this->cached['config.hash'] === $configHash) { $this->dump['config'] = $this->cached['config']; return new Configuration($this->cached['config']); } $this->modified = true; $config = new Configuration(); foreach ($sources as $source) { $config = $config->mergeWith($source->loadConfiguration($loader, $params)); } $this->dump['config'] = $config->toArray(); return $config; }