You are here

system.post_update.php in Zircon Profile 8.0

Same filename and directory in other branches
  1. 8 core/modules/system/system.post_update.php

Post update functions for System.

File

core/modules/system/system.post_update.php
View source
<?php

/**
 * @file
 * Post update functions for System.
 */

/**
 * @addtogroup updates-8.0.0-beta
 * @{
 */

/**
 * Re-save all configuration entities to recalculate dependencies.
 */
function system_post_update_recalculate_configuration_entity_dependencies(&$sandbox = NULL) {
  if (!isset($sandbox['config_names'])) {
    $sandbox['config_names'] = \Drupal::configFactory()
      ->listAll();
    $sandbox['count'] = count($sandbox['config_names']);
  }

  /** @var \Drupal\Core\Config\ConfigManagerInterface $config_manager */
  $config_manager = \Drupal::service('config.manager');
  $count = 0;
  foreach ($sandbox['config_names'] as $key => $config_name) {
    if ($entity = $config_manager
      ->loadConfigEntityByName($config_name)) {
      $entity
        ->save();
    }
    unset($sandbox['config_names'][$key]);
    $count++;

    // Do 50 at a time.
    if ($count == 50) {
      break;
    }
  }
  $sandbox['#finished'] = empty($sandbox['config_names']) ? 1 : ($sandbox['count'] - count($sandbox['config_names'])) / $sandbox['count'];
  return t('Configuration dependencies recalculated');
}

/**
 * @} End of "addtogroup updates-8.0.0-beta".
 */

Functions

Namesort descending Description
system_post_update_recalculate_configuration_entity_dependencies Re-save all configuration entities to recalculate dependencies.