function SimpleConfigUpdate::apply

Same name and namespace in other branches
  1. 10 core/lib/Drupal/Core/Config/Action/Plugin/ConfigAction/SimpleConfigUpdate.php \Drupal\Core\Config\Action\Plugin\ConfigAction\SimpleConfigUpdate::apply()

Applies the config action.

Parameters

string $configName: The name of the config to apply the action to.

mixed $value: The value for the action to use.

Overrides ConfigActionPluginInterface::apply

File

core/lib/Drupal/Core/Config/Action/Plugin/ConfigAction/SimpleConfigUpdate.php, line 44

Class

SimpleConfigUpdate
@internal This API is experimental.

Namespace

Drupal\Core\Config\Action\Plugin\ConfigAction

Code

public function apply(string $configName, mixed $value) : void {
  if ($this->configManager
    ->getEntityTypeIdByName($configName)) {
    // @todo Make this an exception in https://www.drupal.org/node/3515544.
    @trigger_error('Using the simpleConfigUpdate config action on config entities is deprecated in drupal:11.2.0 and throws an exception in drupal:12.0.0. Use the setProperties action instead. See https://www.drupal.org/node/3515543', E_USER_DEPRECATED);
  }
  $config = $this->configFactory
    ->getEditable($configName);
  if ($config->isNew()) {
    throw new ConfigActionException(sprintf('Config %s does not exist so can not be updated', $configName));
  }
  // Expect $value to be an array whose keys are the config keys to update.
  if (!is_array($value)) {
    throw new ConfigActionException(sprintf('Config %s can not be updated because $value is not an array', $configName));
  }
  foreach ($value as $key => $value) {
    $config->set($key, $value);
  }
  $config->save();
}

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