You are here

protected function ExtensionDiscovery::filterByProfileDirectories in Drupal 8

Same name and namespace in other branches
  1. 9 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 271

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 (strpos($file->subpath, 'profiles') !== 0) {

      // This extension doesn't belong to a profile, ignore it.
      return TRUE;
    }
    foreach ($this->profileDirectories as $weight => $profile_path) {
      if (strpos($file
        ->getPath(), $profile_path) === 0) {

        // Parent profile found.
        return TRUE;
      }
    }
    return FALSE;
  });
  return $all_files;
}