You are here

private function LibraryDeprecationAnalyzer::findLibrariesAttachedInTemplate in Upgrade Status 8.3

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

Finds libraries attached using `libraries_attach()` in a Twig template.

Parameters

\Twig\Node\Node $node:

Return value

string[]

1 call to LibraryDeprecationAnalyzer::findLibrariesAttachedInTemplate()
LibraryDeprecationAnalyzer::analyzeTwigLibraryDependencies in src/LibraryDeprecationAnalyzer.php
Analyzes Twig library dependencies.

File

src/LibraryDeprecationAnalyzer.php, line 286

Class

LibraryDeprecationAnalyzer
A library deprecation analyzer.

Namespace

Drupal\upgrade_status

Code

private function findLibrariesAttachedInTemplate(Node $node) : array {
  if (!is_iterable($node)) {
    return [];
  }
  $libraries = [];
  foreach ($node as $item) {
    if ($item instanceof FunctionExpression) {
      if ($item
        ->getAttribute('name') === 'attach_library') {
        foreach ($item
          ->getNode('arguments') as $argument) {
          if ($argument instanceof ConstantExpression && $argument
            ->hasAttribute('value')) {
            $libraries[] = [
              'library' => $argument
                ->getAttribute('value'),
              'line' => $item
                ->getTemplateLine(),
            ];
          }
        }
      }
    }
    else {
      $libraries = array_merge($libraries, $this
        ->findLibrariesAttachedInTemplate($item));
    }
  }
  return $libraries;
}