コード例 #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);
     }
 }