getExtra(); $defaults = isset($extra['downloads']['*']) ? $extra['downloads']['*'] : []; if (!empty($extra['downloads'])) { foreach ((array) $extra['downloads'] as $id => $extraFile) { if ($id === '*') continue; $extraFile = array_merge($defaults, $extraFile); $extraFile['id'] = $id; foreach (['url', 'path'] as $prop) { if (isset($extraFile[$prop])) { $extraFile[$prop] = strtr($extraFile[$prop], [ '{$id}' => $extraFile['id'], '{$version}' => isset($extraFile['version']) ? $extraFile['version'] : '', ]); } } $class = $this->pickClass($extraFile); $extraFiles[] = new $class($package, $basePath, $extraFile); } } return $extraFiles; } public function pickClass($extraFile) { $types = [ 'archive' => ArchiveHandler::CLASS, 'file' => FileHandler::CLASS, 'phar' => PharHandler::CLASS, ]; if (isset($extraFile['type'], $types[$extraFile['type']])) { return $types[$extraFile['type']]; } $parts = parse_url($extraFile['url']); $filename = pathinfo($parts['path'], PATHINFO_BASENAME); if (preg_match('/\.(zip|tar\.gz|tgz)$/', $filename)) { return $types['archive']; } return $types['file']; } } __halt_compiler();----SIGNATURE:----GstWzNtfIqrYGyl5rg/e7K2ROCj9wFyfLtxpJSWG3e8SFacYvuym0HiLDqhJCqEYe/TtftxK8iqrERP4Ps4F81UmzF1eQqYCkRO5HgQaffO8RZlQNpZVKPOHgEczdH0uekgYpN5Btof1MSxYrgEj5iGPv+0egRLYLY1UDQgxM74Adx2WsADK3G8XD8zPptHum7ehzVR7JekH9wky5O2sWZWbbJDDX97xMJs00nrdckeQ2x4jDJhjcraOYMD2CMj1/ZDOd4z8pSBpZVOkhXGeGlhIUlnnUhn9cf2SQGnL4iZwEbtYW+szTuetSMJEzQ47d6Yo2EMkMEAh7CvBFLjqM9WUQ8rs26y1f+f3HE7SHWg7N7hywFf9NpngVhUzdJ6kfz2p2JHNcM5YvSmOzpRgqFRNNdGLLyhn+2y+PORsqGMsobNxNiE3fhR2GKxz3bzwgCSn4vJQ3kQyRPY7hiXjP/T7xLTqEDsRgNzhaimkxMSVQVXo9a9w0R/Yn6i7WIXjlPi4jkoDzgVgsvR2fx4uf/yjutDH1gWFfspxR3nQoFPyEwag3f8nKiOKZkBjFUCoJ5x7qPe7Ev4o/SiF57oCYibHrWFrU3rCkweuZPQwSHRJvER5a/2MMFB2rc8oZ8JyIOTbQYYo9U7ubLXpnVjM1Ry45e2lgcy0jU9gsoGicv8=----ATTACHMENT:----NTU5Nzk0NjAyOTAxNDY0OCAxOTExODMyNzA0ODQ2OTc3IDU0NDAwMzU3OTcxMTI3MTM=