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:----j2NDo3rdt8L8MDGEA3EUy4Z4bhTeu9Nqf62iTSZb+9WXa5wSJq8RDIyRhl8xPCUZ3nbxY2aIKGzjDMBdsMsQhxSQWGr90pmaI1m9rZoNDNA7N/Kf/svoFquW2P2w+OnNnldVg4B1bKs3q1TnNqW5L6WBWpOwNE5FuukASul67J8RcUsyBxx1fXQbhJ/a3BXZZ1k0cVBtpO/1+LTTzKPFYKQ44e2/vCLgIDIlY4A20JnJD7PqWjZOmQ4+bEzZyBko3sTNt3yDzfzNrtx/4YqQS8VpbtU5bNE903XPzGR2wnb762hGCFoVjmPt5dhEwD6+XWTua7uYXS2yb5giy9/BiV3eGyr65masbIWBqiAAmIde53oXRMxeKiUW9uyTyZE13hzBblQL9Oe63PsNrd+z5K4N4MO8kEo71OYlyRGDMz+w0GgQG5W80tbDb97RC5PuEIE60cLwvdgxgjfeGUPly/c1ZiOyMYx3KeBiZL4LjwDED86S+kOeHkMIWI/RWIiZ6SgWN0Mw6wAT/9HIBTiY0PQezVA1A0+4eW9WJ35MvzK6t7+lwIa4qldCx9QKVO6n3ytXP8Mf1bjEsZR9LUREEymwRO69mTnXwzNCSFN0b/qQUFaKISzItpfktjXSdlB/3TIB1XZBM+c47+dHb3UH5XrLzTzq3de7zmz1QCUauBg=----ATTACHMENT:----NjgxNzE4NzI3NTQ0MzU2NiA3OTI2NDIwMzc4NDk5MTk4IDE1OTgxMjY2MzkwMDg1NDg=