function LibraryDependencyResolver::getLibrariesWithDependencies

Same name and namespace in other branches
  1. 11.x core/lib/Drupal/Core/Asset/LibraryDependencyResolver.php \Drupal\Core\Asset\LibraryDependencyResolver::getLibrariesWithDependencies()
  2. 10 core/lib/Drupal/Core/Asset/LibraryDependencyResolver.php \Drupal\Core\Asset\LibraryDependencyResolver::getLibrariesWithDependencies()
  3. 9 core/lib/Drupal/Core/Asset/LibraryDependencyResolver.php \Drupal\Core\Asset\LibraryDependencyResolver::getLibrariesWithDependencies()
  4. 8.9.x core/lib/Drupal/Core/Asset/LibraryDependencyResolver.php \Drupal\Core\Asset\LibraryDependencyResolver::getLibrariesWithDependencies()

Gets the given libraries with their dependencies.

Given ['core/a', 'core/b', 'core/c'], with core/a depending on core/c and core/b on core/d, returns ['core/a', 'core/b', 'core/c', 'core/d'].

Parameters

string[] $libraries: A list of libraries, in the order they should be loaded.

Return value

string[] A list of libraries, in the order they should be loaded, including their dependencies.

Overrides LibraryDependencyResolverInterface::getLibrariesWithDependencies

File

core/lib/Drupal/Core/Asset/LibraryDependencyResolver.php, line 32

Class

LibraryDependencyResolver
Resolves the dependencies of asset (CSS/JavaScript) libraries.

Namespace

Drupal\Core\Asset

Code

public function getLibrariesWithDependencies(array $libraries) {
  $libraries_graph = $this->doGetDependencies($libraries);
  $libraries_graph = $this->doProcessBeforeAfter($libraries_graph);
  $graph_object = new Graph($libraries_graph);
  $graph = $graph_object->searchAndSort();
  uasort($graph, function ($a, $b) {
    if ($a['weight'] == $b['weight']) {
      return 0;
    }
    return $a['weight'] < $b['weight'] ? 1 : -1;
  });
  return array_keys($graph);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.