You are here

ConfigurationSettingsList.php in Configuration Management 7.3

File

src/Helpers/ConfigurationSettingsList.php
View source
<?php

namespace Configuration\Helpers;

use Symfony\Component\Config\FileLocator;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Filesystem\Exception\IOExceptionInterface;
use Symfony\Component\PropertyAccess\PropertyAccess;
use Camspiers\JsonPretty\JsonPretty;
class ConfigurationSettingsList extends ConfigurationSettings {
  public function __construct() {
    $this->settings_filename = 'configurations.json';
    $this
      ->reset();
  }
  protected function defaultConfig() {
    $settings = new \StdClass();
    $settings->configurations = array();
    $settings->modules = array();
    return $settings;
  }
  public function prepareSettings($imported_settings) {
    $settings = new \StdClass();
    $settings->configurations = $imported_settings['configurations'];
    $settings->modules = $imported_settings['modules'];
    return $settings;
  }
  protected function decodeJsonAsArray() {
    return TRUE;
  }
  public function validate() {
    if (!isset($this->settings->configurations)) {
      throw new \Exception("There is no value defined for settings.configurations");
    }
    else {
      foreach ($this->settings->configurations as $identifier => $value) {
        foreach (array(
          'hash',
          'path',
        ) as $key => $value) {
          if (!isset($value[$key])) {
            throw new \Exception("There is no {$key} defined for {$identifier}");
          }
        }
      }
    }
    if (!isset($this->settings->modules)) {
      throw new \Exception("There is no value defined for settings.modules");
    }
    else {
      if (!is_array($this->settings->modules)) {
        throw new \Exception("There settings.modules is not an array");
      }
    }
  }
  public function getConfigurations() {
    return $this->settings->configurations;
  }
  public function getModules() {
    return $this->settings->modules;
  }

}

Classes