/** * @param $name * @return array|null */ private function getPackageInfo($name) { $moduleRepository = new ModuleRepository($this->workingDir); $package = $moduleRepository->getPackage($name); if (!$package) { return null; } $result = array('name' => $package->getName(), 'description' => $package->getDescription(), 'installed' => null, 'versions' => array()); $installed = $moduleRepository->getInstalledByName($package->getName()); if ($installed) { $branchAlias = ''; $version = $installed->getPrettyVersion(); if ($installed instanceof \Composer\Package\AliasPackage) { $branchAlias = $version; $version = $installed->getAliasOf()->getPrettyVersion(); } $require = array(); foreach ($installed->getRequires() as $link) { /* @var \Composer\Package\Link $link */ $require[$link->getTarget()] = $link->getConstraint()->getPrettyString(); } $result['installed'] = array('version' => $version, 'branchAlias' => $branchAlias, 'reference' => $installed->getSourceReference(), 'isDependency' => $moduleRepository->isInstalledAsDependency($installed->getName()), 'require' => $require); } $versions = $package->getVersions(); foreach ($versions as $p) { /* @var \Packagist\Api\Result\Package\Version $p */ $createdAt = new \DateTime($p->getTime()); $version = $p->getVersion(); $result['versions'][$version] = array('version' => $version, 'branchAlias' => $moduleRepository->getVersionAlias($p), 'reference' => $p->getSource()->getReference(), 'createdAt' => $createdAt->format(\DateTime::RFC1123), 'require' => $p->getRequire()); } return $result; }