コード例 #1
0
ファイル: TestKernel.php プロジェクト: koolkode/k2
 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());
 }
コード例 #2
0
ファイル: KernelCache.php プロジェクト: koolkode/k2
 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;
 }