Exemplo n.º 1
0
 /**
  * @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;
 }