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 288

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.