class LibrariesDirectoryFileFinder
Same name and namespace in other branches
- 11.x core/lib/Drupal/Core/Asset/LibrariesDirectoryFileFinder.php \Drupal\Core\Asset\LibrariesDirectoryFileFinder
- 10 core/lib/Drupal/Core/Asset/LibrariesDirectoryFileFinder.php \Drupal\Core\Asset\LibrariesDirectoryFileFinder
- 9 core/lib/Drupal/Core/Asset/LibrariesDirectoryFileFinder.php \Drupal\Core\Asset\LibrariesDirectoryFileFinder
- 8.9.x core/lib/Drupal/Core/Asset/LibrariesDirectoryFileFinder.php \Drupal\Core\Asset\LibrariesDirectoryFileFinder
Finds files that are located in the supported 'libraries' directories.
Hierarchy
- class \Drupal\Core\Asset\LibrariesDirectoryFileFinder
Expanded class hierarchy of LibrariesDirectoryFileFinder
2 files declare their use of LibrariesDirectoryFileFinder
- LibrariesDirectoryFileFinderTest.php in core/
tests/ Drupal/ Tests/ Core/ Asset/ LibrariesDirectoryFileFinderTest.php - LibraryDiscoveryParserTest.php in core/
tests/ Drupal/ Tests/ Core/ Asset/ LibraryDiscoveryParserTest.php
2 string references to 'LibrariesDirectoryFileFinder'
- core.services.yml in core/
core.services.yml - core/core.services.yml
- LibraryDiscoveryParserTest::setUpMockLibrariesDirectoryFileFinder in core/
tests/ Drupal/ Tests/ Core/ Asset/ LibraryDiscoveryParserTest.php - Reinitializes the libraries directory file finder as a mock object.
1 service uses LibrariesDirectoryFileFinder
File
-
core/
lib/ Drupal/ Core/ Asset/ LibrariesDirectoryFileFinder.php, line 10
Namespace
Drupal\Core\AssetView source
class LibrariesDirectoryFileFinder {
/**
* Constructs a new LibrariesDirectoryFileFinder instance.
*
* @param string $root
* The app root.
* @param string $sitePath
* The site path.
* @param \Drupal\Core\Extension\ProfileExtensionList $profileExtensionList
* The profile extension list.
* @param string $installProfile
* The install profile.
*/
public function __construct(protected $root, protected $sitePath, protected ProfileExtensionList $profileExtensionList, protected $installProfile) {
}
/**
* Finds files that are located in the supported 'libraries' directories.
*
* It searches the following locations:
* - A libraries directory in the current site directory, for example:
* sites/default/libraries.
* - The root libraries directory.
* - A libraries directory in the selected installation profile, for example:
* profiles/my_install_profile/libraries.
* If the same library is present in multiple locations the first location
* found will be used. The locations are searched in the order listed.
*
* @param string $path
* The path for the library file to find.
*
* @return string|false
* The real path to the library file relative to the root directory. If the
* library cannot be found then FALSE.
*/
public function find($path) {
// Search sites/<domain>/*.
$directories[] = "{$this->sitePath}/libraries/";
// Always search the root 'libraries' directory.
$directories[] = 'libraries/';
// Installation profiles can place libraries into a 'libraries' directory.
if ($this->installProfile) {
$profile_path = $this->profileExtensionList
->getPath($this->installProfile);
$directories[] = "{$profile_path}/libraries/";
}
foreach ($directories as $dir) {
if (file_exists($this->root . '/' . $dir . $path)) {
return $dir . $path;
}
}
// The library has not been found.
return FALSE;
}
}
Members
| Title Sort descending | Modifiers | Object type | Summary |
|---|---|---|---|
| LibrariesDirectoryFileFinder::find | public | function | Finds files that are located in the supported 'libraries' directories. |
| LibrariesDirectoryFileFinder::__construct | public | function | Constructs a new LibrariesDirectoryFileFinder instance. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.