function ExtensionDiscovery::filterByProfileDirectories

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Extension/ExtensionDiscovery.php \Drupal\Core\Extension\ExtensionDiscovery::filterByProfileDirectories()
  2. 8.9.x core/lib/Drupal/Core/Extension/ExtensionDiscovery.php \Drupal\Core\Extension\ExtensionDiscovery::filterByProfileDirectories()
  3. 10 core/lib/Drupal/Core/Extension/ExtensionDiscovery.php \Drupal\Core\Extension\ExtensionDiscovery::filterByProfileDirectories()

Filters out extensions not belonging to the scanned installation profiles.

Parameters

\Drupal\Core\Extension\Extension[] $all_files: The list of all extensions.

Return value

\Drupal\Core\Extension\Extension[] The filtered list of extensions.

1 call to ExtensionDiscovery::filterByProfileDirectories()
ExtensionDiscovery::scan in core/lib/Drupal/Core/Extension/ExtensionDiscovery.php
Discovers available extensions of a given type.

File

core/lib/Drupal/Core/Extension/ExtensionDiscovery.php, line 306

Class

ExtensionDiscovery
Discovers available extensions in the filesystem.

Namespace

Drupal\Core\Extension

Code

protected function filterByProfileDirectories(array $all_files) {
  if (empty($this->profileDirectories)) {
    return $all_files;
  }
  $all_files = array_filter($all_files, function ($file) {
    if (!str_starts_with($file->subpath, 'profiles')) {
      // This extension doesn't belong to a profile, ignore it.
      return TRUE;
    }
    foreach ($this->profileDirectories as $profile_path) {
      if (str_starts_with($file->getPath(), $profile_path)) {
        // Parent profile found.
        return TRUE;
      }
    }
    return FALSE;
  });
  return $all_files;
}

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