if (!
isset(static::
$files[$this->root
][$dir][$include_tests])) { static::
$files[$this->root
][$dir][$include_tests] =
$this->
scanDirectory($dir,
$include_tests);
} // Only return extensions of the requested type.
if (isset(static::
$files[$this->root
][$dir][$include_tests][$type])) { $files +=
static::
$files[$this->root
][$dir][$include_tests][$type];
} } // If applicable, filter out extensions that do not belong to the current
// installation profiles.
$files =
$this->
filterByProfileDirectories($files);
// Sort the discovered extensions by their originating directories.
$origin_weights =
array_flip($searchdirs);
$files =
$this->
sort($files,
$origin_weights);
// Process and return the list of extensions keyed by extension name.
return $this->
process($files);
} /**
* Sets installation profile directories based on current site settings.
*
* @return $this
*/