コード例 #1
0
ファイル: Config.php プロジェクト: ponticlaro/bebop-cms
 /**
  * Adds single configuration item object to build config
  * 
  * @param  string     $hook         Hook ID
  * @param  string     $env          Environment ID
  * @param  string     $section_name Configuraton section
  * @param  ConfigItem $config_obj   Configuraton item object
  * @return void
  */
 protected function addConfigItem($hook, $env, $section_name, ConfigItem $config_obj)
 {
     // Getting the correct configuration id
     $id = $hook == 'presets' ? $config_obj->getId() : $config_obj->getUniqueId();
     // Define path for config item
     $path = "{$hook}.{$env}.{$section_name}.{$id}";
     // Check if we have a previous configuration
     $prev_config_obj = $this->config->get($path);
     // Merge new configuration with existing one
     if ($prev_config_obj) {
         $config_obj = $prev_config_obj->merge($config_obj);
     }
     // Add config item to its correct path
     $this->config->set($path, $config_obj);
     // Handle configuration item requirements
     if ($hook != 'presets' && ($requirements_config = $config_obj->getRequirements())) {
         $this->processHookEnvConfig($hook, $env, $requirements_config);
     }
 }
コード例 #2
0
ファイル: ConfigItem.php プロジェクト: ponticlaro/bebop-cms
 /**
  * Merges current configuration item with another one
  * 
  * @param  ConfigItemInterface $config_item Configuration object we're going to merge with
  * @return object                           Current class object
  */
 public function merge(ConfigItem $config_item)
 {
     $current_config = $this->config->getAll();
     $merging_config = $config_item->getAll();
     $new_config = array_replace_recursive($current_config, $merging_config);
     $this->config->clear()->set($new_config);
     return $this;
 }