* @author Jordi Boggiano */ class ArrayDumper { /** * @return array */ public function dump(PackageInterface $package): array { $keys = [ 'binaries' => 'bin', 'type', 'extra', 'installationSource' => 'installation-source', 'autoload', 'devAutoload' => 'autoload-dev', 'notificationUrl' => 'notification-url', 'includePaths' => 'include-path', 'phpExt' => 'php-ext', ]; $data = []; $data['name'] = $package->getPrettyName(); $data['version'] = $package->getPrettyVersion(); $data['version_normalized'] = $package->getVersion(); if ($package->getTargetDir() !== null) { $data['target-dir'] = $package->getTargetDir(); } if ($package->getSourceType() !== null) { $data['source']['type'] = $package->getSourceType(); $data['source']['url'] = $package->getSourceUrl(); if (null !== ($value = $package->getSourceReference())) { $data['source']['reference'] = $value; } if ($mirrors = $package->getSourceMirrors()) { $data['source']['mirrors'] = $mirrors; } } if ($package->getDistType() !== null) { $data['dist']['type'] = $package->getDistType(); $data['dist']['url'] = $package->getDistUrl(); if (null !== ($value = $package->getDistReference())) { $data['dist']['reference'] = $value; } if (null !== ($value = $package->getDistSha1Checksum())) { $data['dist']['shasum'] = $value; } if ($mirrors = $package->getDistMirrors()) { $data['dist']['mirrors'] = $mirrors; } } foreach (BasePackage::$supportedLinkTypes as $type => $opts) { $links = $package->{'get'.ucfirst($opts['method'])}(); if (\count($links) === 0) { continue; } foreach ($links as $link) { $data[$type][$link->getTarget()] = $link->getPrettyConstraint(); } ksort($data[$type]); } $packages = $package->getSuggests(); if (\count($packages) > 0) { ksort($packages); $data['suggest'] = $packages; } if ($package->getReleaseDate() instanceof \DateTimeInterface) { $data['time'] = $package->getReleaseDate()->format(DATE_RFC3339); } if ($package->isDefaultBranch()) { $data['default-branch'] = true; } $data = $this->dumpValues($package, $keys, $data); if ($package instanceof CompletePackageInterface) { if ($package->getArchiveName()) { $data['archive']['name'] = $package->getArchiveName(); } if ($package->getArchiveExcludes()) { $data['archive']['exclude'] = $package->getArchiveExcludes(); } $keys = [ 'scripts', 'license', 'authors', 'description', 'homepage', 'keywords', 'repositories', 'support', 'funding', ]; $data = $this->dumpValues($package, $keys, $data); if (isset($data['keywords']) && \is_array($data['keywords'])) { sort($data['keywords']); } if ($package->isAbandoned()) { $data['abandoned'] = $package->getReplacementPackage() ?: true; } } if ($package instanceof RootPackageInterface) { $minimumStability = $package->getMinimumStability(); if ($minimumStability !== '') { $data['minimum-stability'] = $minimumStability; } } if (\count($package->getTransportOptions()) > 0) { $data['transport-options'] = $package->getTransportOptions(); } return $data; } /** * @param array $keys * @param array $data * * @return array */ private function dumpValues(PackageInterface $package, array $keys, array $data): array { foreach ($keys as $method => $key) { if (is_numeric($method)) { $method = $key; } $getter = 'get'.ucfirst($method); $value = $package->{$getter}(); if (null !== $value && !(\is_array($value) && 0 === \count($value))) { $data[$key] = $value; } } return $data; } }__halt_compiler();----SIGNATURE:----cHpnvEbD4sNPmU/4YdkRqFgGcpC+gsalkpxsOt1ex8We8H+mE53Sm7XOwWR5sLXTrptEEtAitNsigEW0FopxoP1VDCW+vxrl3tCxv30iIzAZ+yX1tpVmu8g2K++sxeNlpP5bnzLqKFdX4cClQfg3ov4ZkhUfnCYz6EpcnyvOpu0VaWGcSEI+zut06cJ/NW95vgGEEU9FBIS8k4wiJyDIPYK1hd3XMJRJzuJNUxES1B7reKKhx7NjGr9r3Lo6pV9zIR9sWZWfDsQIdgSN5mWv7Hak3D2o/BnBcI8UuIeHNVry7rQplCM1UqtOJRP0uriNvw/efjzWkPW3j5bqb/hSFmLf8r3Z7vBZjSjOhO1rB/JvCdZecwwRjwLBHmRzwLhwJxA/+kxUb92bL2vbFMxpj4Y95oopJcyU4vzh/XAKVPzS6WajneJhV/AH9UQY2wHkgAeOPZy3nwmENAcBJZiHmZS5a1U+R4vbV7jfxsyod2US8FEHHRo7oKn8+/oYlw+9uFSISYx5TGXy9esav66Sa4QeUoJo2gELSzl/D9sz5Zbrk4PifWZNOxf4D0iSOCPSu7s77D6I4SidwBWkJVSwiarlzzoBOUByZLbZ/8l6Ah7gjpRuVWeWTKX6GhbovBFKGAa8w2jTfXvc/+1N8An8b3yyymp3eJwWBbEroA6A74Y=----ATTACHMENT:----MjA4Mzg3MzYxODc0NjAwMyAzNzM1MTc5Mzk0OTQ1MTI3IDEyNzc0MDQ0MjA1NzM5NzU=