class Configuration in Configuration Management 7.3
A generic configuration of the site.
Hierarchy
- class \Configuration\Configuration
Expanded class hierarchy of Configuration
27 files declare their use of Configuration
- AbstractProcessor.php in src/Processors/ AbstractProcessor.php 
- ConfigurationCRUDEvent.php in src/Events/ ConfigurationCRUDEvent.php 
- ConfigurationExportManager.php in src/Helpers/ ConfigurationExportManager.php 
- ConfigurationExportManager.php handles the export of configurations.
- ConfigurationHandler.php in src/Handlers/ ConfigurationHandler.php 
- ConfigurationHandlerInterface.php in src/ConfigurationHandlerInterface.php 
File
- src/Configuration.php, line 12 
Namespace
ConfigurationView source
class Configuration {
  // The unique identifier to identify this configuration.
  protected $identifier = "";
  // The group where this config is organized.
  protected $group = "";
  // Internal notes to explain what this configuration do.
  protected $notes = "";
  // Tags to categorize this configuration.
  protected $tags = "";
  // A Map of configurations that must exists before be able to load this
  // configuration.
  protected $dependencies;
  // If this configuration is a container that groups others configurations.
  // (This is the reverse of a dependency).
  protected $parts;
  // Required Modules to run this configuration.
  protected $modules;
  // Additional Modules that this configuration will require.
  // This additional module list is not automatically populated by the system.
  // And values defined here will be respected when importing and exporting.
  protected $additional_modules;
  // The configuration values.
  protected $data;
  // A PropertyAccess object.
  protected $property_accessor;
  function __construct() {
    $this->dependencies = new Map();
    $this->parts = new Map();
    $this->modules = new Map();
    $this->additional_modules = new Map();
    $this->group = 'none';
  }
  /* Getters */
  public function getIdentifier() {
    return $this->identifier;
  }
  public function getGroup() {
    return $this->group;
  }
  public function getNotes() {
    return $this->notes;
  }
  public function getTags() {
    return $this->tags;
  }
  public function getDependencies() {
    return $this->dependencies
      ->keys();
  }
  public function getParts() {
    return $this->parts
      ->keys();
  }
  public function getModules() {
    return $this->modules
      ->keys();
  }
  public function getAdditionalModules() {
    return $this->additional_modules
      ->keys();
  }
  public function getData() {
    return $this->data;
  }
  /** Setters **/
  public function setIdentifier($identifier) {
    $this->identifier = $identifier;
    return $this;
  }
  public function setGroup($group) {
    $this->group = $group;
    return $this;
  }
  public function setNotes($notes) {
    $this->notes = $notes;
    return $this;
  }
  public function setTags($tags) {
    $this->tags = $tags;
    return $this;
  }
  public function addDependency($identifier) {
    $this->dependencies
      ->set($identifier, 0);
    return $this;
  }
  public function removeDependency($identifier) {
    if ($this->dependencies
      ->contains($identifier)) {
      $this->dependencies
        ->remove($identifier, 0);
    }
    return $this;
  }
  public function setDependencies($dependencies = array()) {
    $this->dependencies
      ->setAll($dependencies);
    return $this;
  }
  public function addPart($identifier) {
    $this->parts
      ->set($identifier, 0);
    return $this;
  }
  public function removePart($identifier) {
    if ($this->parts
      ->contains($identifier)) {
      $this->parts
        ->remove($identifier, 0);
    }
    return $this;
  }
  public function setParts($parts = array()) {
    $this->parts
      ->setAll($parts);
    return $this;
  }
  public function addModule($module) {
    $this->modules
      ->set($module, 0);
  }
  public function removeModule($identifier) {
    if ($this->modules
      ->contains($identifier)) {
      $this->modules
        ->remove($identifier, 0);
    }
    return $this;
  }
  public function setModules($modules = array()) {
    $this->modules
      ->setAll($modules);
    return $this;
  }
  public function addAdditionalModule($module) {
    $this->additional_modules
      ->set($module, 0);
  }
  public function setAdditionalModules($modules = array()) {
    $this->additional_modules
      ->setAll($modules);
    return $this;
  }
  public function setData($data) {
    $this->data = $data;
    return $this;
  }
  /** Other methods **/
  /**
   * Returns the name that storage this configuration.
   */
  public function getFileName() {
    return $this
      ->getIdentifier() . '.json';
  }
  /**
   * Returns the type of this configuration.
   */
  public function getType() {
    return substr($this
      ->getIdentifier(), 0, strpos($configuration
      ->getIdentifier(), '.'));
  }
  public function toObject() {
    $object = new \stdClass();
    $object->identifier = $this->identifier;
    $object->notes = $this->notes;
    $object->tags = $this->tags;
    $object->dependencies = $this->dependencies
      ->keys();
    $object->parts = $this->parts
      ->keys();
    $object->modules = $this->modules
      ->keys();
    $object->data = $this->data;
    return $object;
  }
  public function fromObject($object) {
    $this
      ->setIdentifier($object->identifier);
    $this
      ->setNotes($object->notes);
    $this
      ->setTags($object->tags);
    $dependencies = array();
    foreach ($object->dependencies as $dependency) {
      $dependencies[$dependency] = TRUE;
    }
    $this
      ->setDependencies($dependencies);
    $parts = array();
    foreach ($object->parts as $part) {
      $parts[$part] = TRUE;
    }
    $this
      ->setParts($parts);
    $modules = array();
    foreach ($object->modules as $module) {
      $modules[$module] = TRUE;
    }
    $this
      ->setModules($modules);
    $this
      ->setData($object->data);
  }
  public function getValue($property) {
    if (!isset($this->property_accessor)) {
      $this->property_accessor = PropertyAccess::createPropertyAccessor();
    }
    return $this->property_accessor
      ->getValue($this->data, $property);
  }
  public function setValue($property, $value) {
    if (!isset($this->property_accessor)) {
      $this->property_accessor = PropertyAccess::createPropertyAccessor();
    }
    return $this->property_accessor
      ->setValue($this->data, $property, $value);
  }
} 
      