You are here

private function LibraryDeprecationAnalyzer::analyzeThemeLibraryOverrides in Upgrade Status 8.3

Same name and namespace in other branches
  1. 8.2 src/LibraryDeprecationAnalyzer.php \Drupal\upgrade_status\LibraryDeprecationAnalyzer::analyzeThemeLibraryOverrides()

Analyze library overrides in a theme.

Parameters

\Drupal\Core\Extension\Extension $extension:

Return value

\Drupal\upgrade_status\DeprecationMessage[]

Throws

\Exception

1 call to LibraryDeprecationAnalyzer::analyzeThemeLibraryOverrides()
LibraryDeprecationAnalyzer::analyze in src/LibraryDeprecationAnalyzer.php
Analyzes usages of deprecated libraries in an extension.

File

src/LibraryDeprecationAnalyzer.php, line 170

Class

LibraryDeprecationAnalyzer
A library deprecation analyzer.

Namespace

Drupal\upgrade_status

Code

private function analyzeThemeLibraryOverrides(Extension $extension) : array {
  if ($extension
    ->getType() !== 'theme') {
    throw new \Exception('Library overrides are only available in themes.');
  }
  if (!isset($extension->info['libraries-override'])) {
    return [];
  }
  return array_reduce(array_keys($extension->info['libraries-override']), function ($deprecated_libraries, $library) use ($extension) {
    $is_deprecated = $this
      ->isLibraryDeprecated($library);
    if (is_null($is_deprecated)) {
      $message = sprintf("The '%s' library is not defined because the defining extension is not installed. Cannot decide if it is deprecated or not.", $library);
      $deprecated_libraries[] = new DeprecationMessage($message, $extension
        ->getFilename(), 0);
    }
    elseif (!empty($is_deprecated)) {
      if ($is_deprecated instanceof DeprecationMessage) {
        $is_deprecated
          ->setFile($extension
          ->getFilename());
        $deprecated_libraries[] = $is_deprecated;
      }
      else {
        $message = "Theme is overriding a deprecated library. {$is_deprecated}";
        $deprecated_libraries[] = new DeprecationMessage($message, $extension
          ->getFilename(), 0);
      }
    }
    return $deprecated_libraries;
  }, []);
}