function Config::save

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Config/Config.php \Drupal\Core\Config\Config::save()
  2. 8.9.x core/lib/Drupal/Core/Config/Config.php \Drupal\Core\Config\Config::save()
  3. 10 core/lib/Drupal/Core/Config/Config.php \Drupal\Core\Config\Config::save()

Overrides StorableConfigBase::save

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 201

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;
            $this->data = $this->castValue(NULL, $this->data);
        }
        else {
            foreach ($this->data as $key => $value) {
                $this->validateValue($key, $value);
            }
        }
    }
    // Potentially configuration schema could have changed the underlying data's
    // types.
    $this->resetOverriddenData();
    $this->storage
        ->write($this->name, $this->data);
    if (!$this->isNew) {
        Cache::invalidateTags($this->getCacheTags());
    }
    $this->isNew = FALSE;
    $event_name = $this->getStorage()
        ->getCollectionName() === StorageInterface::DEFAULT_COLLECTION ? ConfigEvents::SAVE : ConfigCollectionEvents::SAVE_IN_COLLECTION;
    $this->eventDispatcher
        ->dispatch(new ConfigCrudEvent($this), $event_name);
    $this->originalData = $this->data;
    return $this;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.