/** * @param Package $package * @param array $packageInfo */ private function resolveDependencies(Package $package, array $packageInfo) { if (!isset($packageInfo[self::DEPENDENCIES_KEY])) { return; } foreach ($packageInfo[self::DEPENDENCIES_KEY] as $dependencyName => $dependencyInfo) { $dependencyPackage = $this->packages->get($dependencyName); if (null !== $dependencyPackage) { $package->addDependency($dependencyPackage); } } }
/** * Create single formula for package * * @param Package $package * @param Boolean $nestDependencies * @param string $typeExtension * * @return null * * @throws InvalidArgumentException */ protected function createSingleFormula(Package $package, $nestDependencies, $typeExtension) { if (!in_array($typeExtension, array_keys($this->typeGetters))) { throw new InvalidArgumentException(sprintf("Extension '%s' is not in list of valid extensions: %s", $typeExtension, implode(', ', array_keys($this->typeGetters)))); } $typeGetter = $this->typeGetters[$typeExtension]; // fetch the files from the package with the specified getter $files = $package->{$typeGetter}()->toArray(); if (empty($files)) { return null; } if ($nestDependencies) { /** @var $packageDependency Package */ foreach ($package->getDependencies() as $packageDependency) { $depFiles = $packageDependency->{$typeGetter}()->toArray(); if (empty($depFiles)) { continue; } $packageDependencyName = $this->namingStrategy->translateName($packageDependency->getName()); array_unshift($files, '@' . $packageDependencyName . '_' . $typeExtension); } } return $files; }