You are here

class Config in Domain Access 8

Extend core Config class to save domain specific configuration.

Hierarchy

Expanded class hierarchy of Config

File

domain_config_ui/src/Config/Config.php, line 11

Namespace

Drupal\domain_config_ui\Config
View source
class Config extends CoreConfig {

  /**
   * The Domain config UI manager.
   *
   * @var \Drupal\domain_config_ui\DomainConfigUIManager
   */
  protected $domainConfigUIManager;

  /**
   * Set the Domain config UI manager.
   *
   * @param \Drupal\domain_config_ui\DomainConfigUIManager $domain_config_ui_manager
   *   The Domain config UI manager.
   */
  public function setDomainConfigUiManager(DomainConfigUIManager $domain_config_ui_manager) {
    $this->domainConfigUIManager = $domain_config_ui_manager;
  }

  /**
   * {@inheritdoc}
   */
  public function save($has_trusted_data = FALSE) {

    // Remember original config name.
    $originalName = $this->name;
    try {

      // Get domain config name for saving.
      $domainConfigName = $this
        ->getDomainConfigName();

      // If config is new and we are saving domain specific configuration,
      // save with original name so there is always a default configuration.
      if ($this->isNew && $domainConfigName != $originalName) {
        parent::save($has_trusted_data);
      }

      // Switch to use domain config name and save.
      $this->name = $domainConfigName;
      parent::save($has_trusted_data);
    } catch (\Exception $e) {

      // Reset back to original config name if save fails and re-throw.
      $this->name = $originalName;
      throw $e;
    }

    // Reset back to original config name after saving.
    $this->name = $originalName;
    return $this;
  }

  /**
   * Get the domain config name.
   */
  protected function getDomainConfigName() {

    // Return selected config name.
    return $this->domainConfigUIManager
      ->getSelectedConfigName($this->name);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
CacheableDependencyTrait::$cacheContexts protected property Cache contexts.
CacheableDependencyTrait::$cacheMaxAge protected property Cache max-age.
CacheableDependencyTrait::$cacheTags protected property Cache tags.
CacheableDependencyTrait::setCacheability protected function Sets cacheability; useful for value object constructors.
Config::$domainConfigUIManager protected property The Domain config UI manager.
Config::$eventDispatcher protected property An event dispatcher instance to use for configuration events.
Config::$moduleOverrides protected property The current module overrides.
Config::$overriddenData protected property The current runtime data.
Config::$settingsOverrides protected property The current settings overrides.
Config::clear public function Unsets a value in this configuration object. Overrides ConfigBase::clear 1
Config::delete public function Deletes the configuration object. Overrides StorableConfigBase::delete 1
Config::get public function Gets data from this configuration object. Overrides ConfigBase::get
Config::getDomainConfigName protected function Get the domain config name.
Config::getOriginal public function Gets original data from this configuration object.
Config::getRawData public function Gets the raw data without overrides.
Config::hasOverrides public function Determines if overrides are applied to a key for this configuration object.
Config::initWithData public function Initializes a configuration object with pre-loaded data. Overrides StorableConfigBase::initWithData
Config::resetOverriddenData protected function Resets the current data, so overrides are re-applied.
Config::save public function Saves the configuration object. Overrides Config::save
Config::set public function Sets a value in this configuration object. Overrides ConfigBase::set 1
Config::setData public function Replaces the data of this configuration object. Overrides ConfigBase::setData
Config::setDomainConfigUiManager public function Set the Domain config UI manager.
Config::setModuleOverride public function Sets module overrides for this configuration object.
Config::setOverriddenData protected function Sets the current data for this configuration object.
Config::setSettingsOverride public function Sets settings.php overrides for this configuration object.
Config::__construct public function Constructs a configuration object.
ConfigBase::$data protected property The data of the configuration object.
ConfigBase::$name protected property The name of the configuration object.
ConfigBase::castSafeStrings protected function Casts any objects that implement MarkupInterface to string.
ConfigBase::getCacheContexts public function The cache contexts associated with this object. Overrides CacheableDependencyTrait::getCacheContexts
ConfigBase::getCacheMaxAge public function The maximum age for which this object may be cached. Overrides CacheableDependencyTrait::getCacheMaxAge
ConfigBase::getCacheTags public function The cache tags associated with this object. Overrides CacheableDependencyTrait::getCacheTags 1
ConfigBase::getName public function Returns the name of this configuration object.
ConfigBase::MAX_NAME_LENGTH constant The maximum length of a configuration object name.
ConfigBase::merge public function Merges data into a configuration object.
ConfigBase::setName public function Sets the name of this configuration object.
ConfigBase::validateKeys protected function Validates all keys in a passed in config array structure.
ConfigBase::validateName public static function Validates the configuration object name.
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
RefinableCacheableDependencyTrait::addCacheableDependency public function 1
RefinableCacheableDependencyTrait::addCacheContexts public function
RefinableCacheableDependencyTrait::addCacheTags public function
RefinableCacheableDependencyTrait::mergeCacheMaxAge public function
StorableConfigBase::$isNew protected property Whether the configuration object is new or has been saved to the storage.
StorableConfigBase::$originalData protected property The data of the configuration object.
StorableConfigBase::$schemaWrapper protected property The config schema wrapper object for this configuration object.
StorableConfigBase::$storage protected property The storage used to load and save this configuration object.
StorableConfigBase::$typedConfigManager protected property The typed config manager.
StorableConfigBase::castValue protected function Casts the value to correct data type using the configuration schema.
StorableConfigBase::getSchemaWrapper protected function Gets the schema wrapper for the whole configuration object.
StorableConfigBase::getStorage public function Retrieves the storage used to load and save this configuration object.
StorableConfigBase::isNew public function Returns whether this configuration object is new.
StorableConfigBase::validateValue protected function Validate the values are allowed data types.