You are here

public function Config::save in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/Config/Config.php \Drupal\Core\Config\Config::save()

Saves the configuration object.

Parameters

bool $has_trusted_data: Set to TRUE if the configuration data has already been checked to ensure it conforms to schema. Generally this is only used during module and theme installation.

Must invalidate the cache tags associated with the configuration object.

Return value

$this

Overrides StorableConfigBase::save

See also

\Drupal\Core\Config\ConfigInstaller::createConfiguration()

1 method overrides Config::save()
ImmutableConfig::save in core/lib/Drupal/Core/Config/ImmutableConfig.php
Saves the configuration object.

File

core/lib/Drupal/Core/Config/Config.php, line 206
Contains \Drupal\Core\Config\Config.

Class

Config
Defines the default configuration object.

Namespace

Drupal\Core\Config

Code

public function save($has_trusted_data = FALSE) {

  // Validate the configuration object name before saving.
  static::validateName($this->name);

  // If there is a schema for this configuration object, cast all values to
  // conform to the schema.
  if (!$has_trusted_data) {
    if ($this->typedConfigManager
      ->hasConfigSchema($this->name)) {

      // Ensure that the schema wrapper has the latest data.
      $this->schemaWrapper = NULL;
      foreach ($this->data as $key => $value) {
        $this->data[$key] = $this
          ->castValue($key, $value);
      }
    }
    else {
      foreach ($this->data as $key => $value) {
        $this
          ->validateValue($key, $value);
      }
    }
  }
  $this->storage
    ->write($this->name, $this->data);
  if (!$this->isNew) {
    Cache::invalidateTags($this
      ->getCacheTags());
  }
  $this->isNew = FALSE;
  $this->eventDispatcher
    ->dispatch(ConfigEvents::SAVE, new ConfigCrudEvent($this));
  $this->originalData = $this->data;

  // Potentially configuration schema could have changed the underlying data's
  // types.
  $this
    ->resetOverriddenData();
  return $this;
}