You are here

function libraries_scan_info_files in Libraries API 8.3

Same name and namespace in other branches
  1. 7.3 libraries.module \libraries_scan_info_files()
  2. 7.2 libraries.module \libraries_scan_info_files()

Looks for library info files.

This function scans the following directories for info files:

  • libraries
  • profiles/$profilename/libraries
  • sites/all/libraries
  • sites/$sitename/libraries
  • any directories specified via hook_libraries_info_file_paths()

Return value

An array of info files, keyed by library name. The values are the paths of the files.

Deprecated

Will be removed before a stable Drupal 8 release. Please use the new library load and managment concepts described at: https://www.drupal.org/node/2170763

2 calls to libraries_scan_info_files()
LibrariesWebTest::testLibrariesScanInfoFiles in src/Tests/LibrariesWebTest.php
Tests libraries_scan_info_files().
libraries_info in ./libraries.module
Returns information about registered libraries.

File

./libraries.module, line 170
External library handling for Drupal modules.

Code

function libraries_scan_info_files() {
  $profile = drupal_get_path('profile', \Drupal::installProfile());
  $config = DrupalKernel::findSitePath(\Drupal::request());

  // Build a list of directories.
  $directories = \Drupal::moduleHandler()
    ->invokeAll('libraries_info_file_paths', $args = []);
  $directories[] = "{$profile}/libraries";
  $directories[] = 'sites/all/libraries';
  $directories[] = 'libraries';
  $directories[] = "{$config}/libraries";

  // Scan for info files.
  $files = [];
  foreach ($directories as $dir) {
    if (file_exists($dir)) {
      $files = array_merge($files, \Drupal::service('file_system')
        ->scanDirectory($dir, '@^[a-z0-9._-]+\\.libraries\\.info\\.yml$@', [
        'key' => 'name',
        'recurse' => FALSE,
      ]));
    }
  }
  foreach ($files as $filename => $file) {
    $files[basename($filename, '.libraries.info')] = $file;
    unset($files[$filename]);
  }
  return $files;
}