You are here

function views_post_update_views_data_table_dependencies in Drupal 8

Include views data table provider in views dependencies.

File

core/modules/views/views.post_update.php, line 301
Post update functions for Views.

Code

function views_post_update_views_data_table_dependencies(&$sandbox = NULL) {
  $storage = \Drupal::entityTypeManager()
    ->getStorage('view');
  if (!isset($sandbox['views'])) {
    $sandbox['views'] = $storage
      ->getQuery()
      ->accessCheck(FALSE)
      ->execute();
    $sandbox['count'] = count($sandbox['views']);
  }

  // Process 10 views at a time.
  $views = $storage
    ->loadMultiple(array_splice($sandbox['views'], 0, 10));
  foreach ($views as $view) {
    $original_dependencies = $view
      ->getDependencies();

    // Only re-save if dependencies have changed.
    if ($view
      ->calculateDependencies()
      ->getDependencies() !== $original_dependencies) {

      // We can trust the data because we've already recalculated the
      // dependencies.
      $view
        ->trustData();
      $view
        ->save();
    }
  }
  $sandbox['#finished'] = empty($sandbox['views']) ? 1 : ($sandbox['count'] - count($sandbox['views'])) / $sandbox['count'];
}