parent = $parent; $this->parentPath = $parentPath; $this->extraFile = $extraFile; } public function getSubpackage() { if ($this->subpackage === NULL) { $this->subpackage = $this->createSubpackage(); } return $this->subpackage; } /** * @return Subpackage */ public function createSubpackage() { $versionParser = new VersionParser(); $extraFile = $this->extraFile; $parent = $this->parent; if (isset($extraFile['version'])) { // $version = $versionParser->normalize($extraFile['version']); $version = $versionParser->normalize(self::FAKE_VERSION); $prettyVersion = $extraFile['version']; } elseif ($parent instanceof RootPackageInterface) { $version = $versionParser->normalize(self::FAKE_VERSION); $prettyVersion = self::FAKE_VERSION; } else { $version = $parent->getVersion(); $prettyVersion = $parent->getPrettyVersion(); } $package = new Subpackage( $parent, $extraFile['id'], $extraFile['url'], NULL, $extraFile['path'], $version, $prettyVersion ); return $package; } public function createTrackingData() { return [ 'name' => $this->getSubpackage()->getName(), 'url' => $this->getSubpackage()->getDistUrl(), 'checksum' => $this->getChecksum(), ]; } /** * @return string * A unique identifier for this configuration of this asset. * If the identifier changes, that implies that the asset should be * replaced/redownloaded. */ public function getChecksum() { $extraFile = $this->extraFile; return hash('sha256', serialize([ get_class($this), $extraFile['id'], $extraFile['url'], $extraFile['path'], ])); } /** * @return string */ public function getTargetPath() { return $this->parentPath . '/' . $this->extraFile['path']; } /** * @param Composer $composer * @param IOInterface $io */ abstract public function download(Composer $composer, IOInterface $io); /** * @return string */ abstract public function getTrackingFile(); } __halt_compiler();----SIGNATURE:----GVxPFTcMhj+oXW4FVzEbl7kij9tO7QSz3EgzaIQdpq/ZuusAbYmPT8uM6YdGssPAg3SnXOYqfoTf37uMAmy1yQCiV/AvSGaDOQad//Kr45w/vl1VN0QwfWLYL/Qxtdu5FUhHxpkU1qo4Sf1CsNesn1+4TvI0SKIbCsA9OvH6Cmrqh5aQTp1ldWfNHmpxb7ASJDbVskWewBRodj8zViu4WAb9HCbfPqqRkacbNS6FF/sl8JlaSOlyT+hbPq10VYBAwjIpox/xDElcRe+h7R3qoPfZSRnbNalQrpRhZ2QCCk/k0sFe+/W1q+sj+GKCHJHd+PczntPo+1xEpCXcwk0RYyz7llfDNbHyGAG5DOvCwo1y5wshgy6Ob8TYgnN3LUwMibTazVXN4TCJom239Jzzkp/pruV3RYqIblAfR9RmlI9gTJREoIbmmRGqFAalO093Gn2Xe2dM3L/4zRxx9HM8Pb6apnmwVmvQLxalJpk2B9iKS/TIZfdoWISPq82nsQGBkY+X59wHoOqFJAXmxZW740100XJ7ngR8CYdjimwjBlpzrbseaC/lIKuc+V47b1NrFla47gGdFG4SPIIrnc9ncOUM6RyzlwRaJ84zDfJIhwGmusFZ8rihrqyFGQx3Awr4UoOAx2eByCelr0NLmAfB8gaZRmBtjIL329qBPorCulU=----ATTACHMENT:----NjY5Mjg4NTU1MzMzMzM1MCAyNTUyNTI4NzgxNzM2MTY2IDg4MzAyNjEyNDk2Njg4ODQ=