You are here

public function UpdateManager::refreshUpdateData in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/update/src/UpdateManager.php \Drupal\update\UpdateManager::refreshUpdateData()

Clears out all the available update data and initiates re-fetching.

Overrides UpdateManagerInterface::refreshUpdateData

File

core/modules/update/src/UpdateManager.php, line 111

Class

UpdateManager
Default implementation of UpdateManagerInterface.

Namespace

Drupal\update

Code

public function refreshUpdateData() {

  // Since we're fetching new available update data, we want to clear
  // of both the projects we care about, and the current update status of the
  // site. We do *not* want to clear the cache of available releases just yet,
  // since that data (even if it's stale) can be useful during
  // \Drupal\update\UpdateManager::getProjects(); for example, to modules
  // that implement hook_system_info_alter() such as cvs_deploy.
  $this->keyValueStore
    ->delete('update_project_projects');
  $this->keyValueStore
    ->delete('update_project_data');
  $projects = $this
    ->getProjects();

  // Now that we have the list of projects, we should also clear the available
  // release data, since even if we fail to fetch new data, we need to clear
  // out the stale data at this point.
  $this->availableReleasesTempStore
    ->deleteAll();
  foreach ($projects as $project) {
    $this->updateProcessor
      ->createFetchTask($project);
  }
}