function libraries_scan_info_files in Libraries API 8.3
Same name and namespace in other branches
- 7.3 libraries.module \libraries_scan_info_files()
- 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;
}