public function getPlatform() { $repo = new PlatformRepository(); $packages = []; foreach ($repo->getPackages() as $package) { if (!isset($packages[$package->getName()]) || !is_object($packages[$package->getName()]) || version_compare($packages[$package->getName()]->getVersion(), $package->getVersion(), '<')) { $packages[$package->getName()] = $package; } } return $packages; }
public static function show() { $template = file_get_contents(__DIR__ . '/../../templates/layout.html'); $composerPlatformRepo = new PlatformRepository(); $platformPackages = $composerPlatformRepo->getPackages(); $packagesTemplate = ''; foreach ($platformPackages as $package) { $packagesTemplate .= "<tr><td>{$package->getPrettyName()}</td>"; $packagesTemplate .= "<td>{$package->getPrettyVersion()}</td>"; $packagesTemplate .= "<td>{$package->getDescription()}</td></tr>"; } return str_replace('<!--packages//-->', $packagesTemplate, $template); }
private function createRequest(Pool $pool, RootPackageInterface $rootPackage, PlatformRepository $platformRepo) { $request = new Request($pool); $constraint = new VersionConstraint('=', $rootPackage->getVersion()); $constraint->setPrettyString($rootPackage->getPrettyVersion()); $request->install($rootPackage->getName(), $constraint); $fixedPackages = $platformRepo->getPackages(); if ($this->additionalInstalledRepository) { $additionalFixedPackages = $this->additionalInstalledRepository->getPackages(); $fixedPackages = array_merge($fixedPackages, $additionalFixedPackages); } // fix the version of all platform packages + additionally installed packages // to prevent the solver trying to remove or update those $provided = $rootPackage->getProvides(); foreach ($fixedPackages as $package) { $constraint = new VersionConstraint('=', $package->getVersion()); $constraint->setPrettyString($package->getPrettyVersion()); // skip platform packages that are provided by the root package if ($package->getRepository() !== $platformRepo || !isset($provided[$package->getName()]) || !$provided[$package->getName()]->getConstraint()->matches($constraint)) { $request->fix($package->getName(), $constraint); } } return $request; }
private function createRequest(Pool $pool, RootPackageInterface $rootPackage, PlatformRepository $platformRepo) { $request = new Request($pool); $constraint = new VersionConstraint('=', $rootPackage->getVersion()); $constraint->setPrettyString($rootPackage->getPrettyVersion()); $request->install($rootPackage->getName(), $constraint); // fix the version of all platform packages to prevent the solver trying to remove those foreach ($platformRepo->getPackages() as $package) { $constraint = new VersionConstraint('=', $package->getVersion()); $constraint->setPrettyString($package->getPrettyVersion()); if (!($provided = $rootPackage->getProvides()) || !isset($provided[$package->getName()]) || !$provided[$package->getName()]->getConstraint()->matches($constraint)) { $request->install($package->getName(), $constraint); } } return $request; }
private function createRequest(Pool $pool, RootPackageInterface $rootPackage, PlatformRepository $platformRepo) { $request = new Request($pool); $constraint = new VersionConstraint('=', $rootPackage->getVersion()); $constraint->setPrettyString($rootPackage->getPrettyVersion()); $request->install($rootPackage->getName(), $constraint); $fixedPackages = $platformRepo->getPackages(); if ($this->additionalInstalledRepository) { $additionalFixedPackages = $this->additionalInstalledRepository->getPackages(); $fixedPackages = array_merge($fixedPackages, $additionalFixedPackages); } $provided = $rootPackage->getProvides(); foreach ($fixedPackages as $package) { $constraint = new VersionConstraint('=', $package->getVersion()); $constraint->setPrettyString($package->getPrettyVersion()); if ($package->getRepository() !== $platformRepo || !isset($provided[$package->getName()]) || !$provided[$package->getName()]->getConstraint()->matches($constraint)) { $request->install($package->getName(), $constraint); } } return $request; }