function PluginManager::collectDependencies
Recursively generates a map of package names to packages for all deps
Parameters
InstalledRepository $installedRepo Set of local repos:
array<string, PackageInterface> $collected Current state of the map for recursion:
PackageInterface $package The package to analyze:
Return value
array<string, PackageInterface> Map of package names to packages
1 call to PluginManager::collectDependencies()
- PluginManager::registerPackage in vendor/
composer/ composer/ src/ Composer/ Plugin/ PluginManager.php - Register a plugin package, activate it etc.
File
-
vendor/
composer/ composer/ src/ Composer/ Plugin/ PluginManager.php, line 534
Class
- PluginManager
- Plugin manager
Namespace
Composer\PluginCode
private function collectDependencies(InstalledRepository $installedRepo, array $collected, PackageInterface $package) : array {
foreach ($package->getRequires() as $requireLink) {
foreach ($installedRepo->findPackagesWithReplacersAndProviders($requireLink->getTarget()) as $requiredPackage) {
if (!isset($collected[$requiredPackage->getName()])) {
$collected[$requiredPackage->getName()] = $requiredPackage;
$collected = $this->collectDependencies($installedRepo, $collected, $requiredPackage);
}
}
}
return $collected;
}