You are here

private function LibraryDeprecationAnalyzer::isLibraryDeprecated in Upgrade Status 8.3

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

Tests if library is deprecated.

Parameters

string $library: A string representing library. For example, 'node/drupal.node'.

Return value

bool|string|NULL|DeprecationMessage FALSE if the library is not deprecated. NULL if the library's module is not enabled. Deprecation message string otherwise.

5 calls to LibraryDeprecationAnalyzer::isLibraryDeprecated()
LibraryDeprecationAnalyzer::analyzeLibraryDependencies in src/LibraryDeprecationAnalyzer.php
Analyzes libraries for dependencies on deprecated libraries.
LibraryDeprecationAnalyzer::analyzePhpLibraryReferences in src/LibraryDeprecationAnalyzer.php
Analyzes libraries referenced in PHP.
LibraryDeprecationAnalyzer::analyzeThemeLibraryExtends in src/LibraryDeprecationAnalyzer.php
Analyze library extends in a theme.
LibraryDeprecationAnalyzer::analyzeThemeLibraryOverrides in src/LibraryDeprecationAnalyzer.php
Analyze library overrides in a theme.
LibraryDeprecationAnalyzer::analyzeTwigLibraryDependencies in src/LibraryDeprecationAnalyzer.php
Analyzes Twig library dependencies.

File

src/LibraryDeprecationAnalyzer.php, line 407

Class

LibraryDeprecationAnalyzer
A library deprecation analyzer.

Namespace

Drupal\upgrade_status

Code

private function isLibraryDeprecated($library) {
  if (!strpos($library, '/')) {
    return new DeprecationMessage('The ' . $library . ' library does not have an extension name and is therefore not valid.');
  }
  list($extension_name, $library_name) = explode('/', $library, 2);

  // Drupal\Core\Asset\LibraryDiscoveryParser::buildByExtension() assumes a
  // disabled module is a theme and fails not finding it then, so check if
  // the extension identified he is an installed module or theme. The library
  // info will not be available otherwise.
  if ($extension_name != 'core') {
    $installed_modules = array_keys($this->moduleExtensionList
      ->getAllInstalledInfo());
    $installed_themes = array_keys($this->themeExtensionList
      ->getAllInstalledInfo());
    if (!in_array($extension_name, $installed_modules) && !in_array($extension_name, $installed_themes)) {
      return NULL;
    }
  }
  try {
    $dependency_libraries = $this->libraryDiscoveryParser
      ->buildByExtension($extension_name);
  } catch (\Exception $e) {
    return new DeprecationMessage($e
      ->getMessage());
  }
  if (isset($dependency_libraries[$library_name]) && isset($dependency_libraries[$library_name]['deprecated'])) {
    return str_replace('%library_id%', "{$extension_name}/{$library_name}", $dependency_libraries[$library_name]['deprecated']);
  }
  return FALSE;
}