function update_fix_compatibility in Drupal 8
Same name and namespace in other branches
- 6 update.php \update_fix_compatibility()
 - 7 includes/update.inc \update_fix_compatibility()
 
Disables any extensions that are incompatible with the current core version.
See also
https://www.drupal.org/node/3026100
1 call to update_fix_compatibility()
- CompatibilityFixTest::testFixCompatibility in core/
tests/ Drupal/ KernelTests/ Core/ Update/ CompatibilityFixTest.php  - @expectedDeprecation update_fix_compatibility() is deprecated in Drupal 8.8.5 and will be removed before Drupal 9.0.0. There is no replacement. See https://www.drupal.org/node/3026100
 
File
- core/
includes/ update.inc, line 23  - Drupal database update API.
 
Code
function update_fix_compatibility() {
  @trigger_error(__FUNCTION__ . '() is deprecated in Drupal 8.8.5 and will be removed before Drupal 9.0.0. There is no replacement. See https://www.drupal.org/node/3026100', E_USER_DEPRECATED);
  // Fix extension objects if the update is being done via Drush 8. In non-Drush
  // environments this will already be fixed by the UpdateKernel this point.
  UpdateKernel::fixSerializedExtensionObjects(\Drupal::getContainer());
  $extension_config = \Drupal::configFactory()
    ->getEditable('core.extension');
  $save = FALSE;
  foreach ([
    'module',
    'theme',
  ] as $type) {
    foreach ($extension_config
      ->get($type) as $name => $weight) {
      if (update_check_incompatibility($name, $type)) {
        $extension_config
          ->clear("{$type}.{$name}");
        $save = TRUE;
      }
    }
  }
  if ($save) {
    $extension_config
      ->set('module', module_config_sort($extension_config
      ->get('module')));
    $extension_config
      ->save();
  }
}